menikev commited on
Commit
21b510b
1 Parent(s): 20f957a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -15
app.py CHANGED
@@ -19,21 +19,21 @@ def load_and_clean_data():
19
 
20
  # Concatenate dataframes and clean data
21
  df_combined = pd.concat([df1, df2, df3, df4])
22
- df_combined['Domain'] = df_combined['Domain'].replace("MUSLIM", "Muslim")
23
- df_combined = df_combined[df_combined['Domain'] != 'Not relevant']
24
- df_combined = df_combined[df_combined['Domain'] != 'None']
25
- df_combined = df_combined[df_combined['Discrimination'] != 'None']
26
- df_combined = df_combined[df_combined['Sentiment'] != 'None']
27
 
28
  return df_combined
29
 
30
  df = load_and_clean_data()
31
 
32
- # Define Sidebar Filters
33
- domain_options = df['Domain'].unique()
34
- channel_options = df['Channel'].unique()
35
- sentiment_options = df['Sentiment'].unique()
36
- discrimination_options = df['Discrimination'].unique()
37
 
38
  domain_filter = st.sidebar.multiselect('Select Domain', options=domain_options, default=domain_options)
39
  channel_filter = st.sidebar.multiselect('Select Channel', options=channel_options, default=channel_options)
@@ -97,6 +97,7 @@ def create_channel_discrimination_chart(df):
97
  fig.update_layout(title='Channel-wise Distribution of Discriminative Content', margin=dict(l=20, r=20, t=40, b=20))
98
  return fig
99
 
 
100
  def render_dashboard(page, df_filtered):
101
  if page == "Overview":
102
  st.title("Overview Dashboard")
@@ -115,13 +116,11 @@ def render_dashboard(page, df_filtered):
115
 
116
  elif page == "Sentiment Analysis":
117
  st.title("Sentiment Analysis Dashboard")
118
- # Implementation for the "Sentiment Analysis" page...
119
- # Example: st.plotly_chart(create_some_other_chart(df_filtered))
120
 
121
  elif page == "Discrimination Analysis":
122
  st.title("Discrimination Analysis Dashboard")
123
- # Implementation for the "Discrimination Analysis" page...
124
- # Example: st.plotly_chart(create_another_chart(df_filtered))
125
 
126
  elif page == "Channel Analysis":
127
  st.title("Channel Analysis Dashboard")
@@ -132,5 +131,5 @@ def render_dashboard(page, df_filtered):
132
  with col2:
133
  st.plotly_chart(create_channel_discrimination_chart(df_filtered))
134
 
135
- # Render the dashboard with filtered data
136
  render_dashboard(page, df_filtered)
 
19
 
20
  # Concatenate dataframes and clean data
21
  df_combined = pd.concat([df1, df2, df3, df4])
22
+ df_combined['Domain'] = df_combined['Domain'].replace({"MUSLIM": "Muslim", "nan": pd.NA, "None": pd.NA, "Other-Ethnic": "Other-Ethnicity"})
23
+ df_combined['Sentiment'] = df_combined['Sentiment'].replace({"nan": pd.NA, "None": pd.NA, "No": pd.NA})
24
+
25
+ # Drop rows with NA values in 'Domain' and 'Sentiment'
26
+ df_combined = df_combined.dropna(subset=['Domain', 'Sentiment'])
27
 
28
  return df_combined
29
 
30
  df = load_and_clean_data()
31
 
32
+ # Sidebar Filters
33
+ domain_options = df['Domain'].dropna().unique()
34
+ channel_options = df['Channel'].dropna().unique()
35
+ sentiment_options = df['Sentiment'].dropna().unique()
36
+ discrimination_options = df['Discrimination'].dropna().unique()
37
 
38
  domain_filter = st.sidebar.multiselect('Select Domain', options=domain_options, default=domain_options)
39
  channel_filter = st.sidebar.multiselect('Select Channel', options=channel_options, default=channel_options)
 
97
  fig.update_layout(title='Channel-wise Distribution of Discriminative Content', margin=dict(l=20, r=20, t=40, b=20))
98
  return fig
99
 
100
+ # Function for rendering dashboard
101
  def render_dashboard(page, df_filtered):
102
  if page == "Overview":
103
  st.title("Overview Dashboard")
 
116
 
117
  elif page == "Sentiment Analysis":
118
  st.title("Sentiment Analysis Dashboard")
119
+ # Implement sentiment analysis visualizations here
 
120
 
121
  elif page == "Discrimination Analysis":
122
  st.title("Discrimination Analysis Dashboard")
123
+ # Implement discrimination analysis visualizations here
 
124
 
125
  elif page == "Channel Analysis":
126
  st.title("Channel Analysis Dashboard")
 
131
  with col2:
132
  st.plotly_chart(create_channel_discrimination_chart(df_filtered))
133
 
134
+ # Render the selected dashboard page
135
  render_dashboard(page, df_filtered)