myshirk commited on
Commit
18077e1
·
verified ·
1 Parent(s): c74ae45

update filter to be more user friendly

Browse files
Files changed (1) hide show
  1. app.py +20 -23
app.py CHANGED
@@ -39,32 +39,29 @@ st.title("🌍 CGD Survey Explorer (Live DB)")
39
 
40
  st.sidebar.header("🔎 Filter Questions")
41
 
42
- # Dropdown filters (optional)
43
- countries = sorted(df["country"].dropna().unique())
44
- years = sorted(df["year"].dropna().unique())
45
 
46
- selected_countries = st.sidebar.multiselect("Select Country", countries, default=countries)
47
- selected_years = st.sidebar.multiselect("Select Year", years, default=years)
48
- keyword = st.sidebar.text_input("Keyword Search (in question)", "")
 
49
 
50
- # Column selector
51
- all_columns = df.columns.tolist()
52
- default_columns = ["country", "question", "responses"]
53
- selected_columns = st.sidebar.multiselect("Columns to Display", all_columns, default=default_columns)
54
 
55
- # Apply filters
56
- filtered = df[
57
- df["country"].isin(selected_countries) &
58
- df["year"].isin(selected_years)
59
- ]
60
 
61
- if keyword:
62
- filtered = filtered[filtered["question"].str.contains(keyword, case=False, na=False)]
63
 
64
- # Show results
65
- st.markdown("### Filtered Results")
66
- if not filtered.empty:
67
- st.dataframe(filtered[selected_columns])
68
- else:
69
- st.info("No matching questions found.")
70
 
 
39
 
40
  st.sidebar.header("🔎 Filter Questions")
41
 
42
+ # COUNTRY filter with "All" toggle
43
+ all_countries = sorted(df["country"].dropna().unique())
44
+ use_all_countries = st.sidebar.checkbox("Include All Countries", value=True)
45
 
46
+ if use_all_countries:
47
+ selected_countries = all_countries
48
+ else:
49
+ selected_countries = st.sidebar.multiselect("Select Countries", all_countries)
50
 
51
+ # YEAR filter with "All" toggle
52
+ all_years = sorted(df["year"].dropna().unique())
53
+ use_all_years = st.sidebar.checkbox("Include All Years", value=True)
 
54
 
55
+ if use_all_years:
56
+ selected_years = all_years
57
+ else:
58
+ selected_years = st.sidebar.multiselect("Select Years", all_years)
 
59
 
60
+ # Free-text keyword filter
61
+ keyword = st.sidebar.text_input("Keyword Search (in question)", "")
62
 
63
+ # Column selection
64
+ all_columns = df.columns.tolist()
65
+ default_columns = ["country", "year", "question_text", "answer_text"]
66
+ selected_columns = st.sidebar.multiselect("Columns to Display", all_columns, default=default_columns)
 
 
67