menikev commited on
Commit
68a2713
1 Parent(s): 93b4f33

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -42
app.py CHANGED
@@ -10,44 +10,52 @@ import plotly.graph_objects as go
10
  # Set page configuration
11
  st.set_page_config(layout="wide")
12
 
13
-
14
  def load_and_clean_data():
 
15
  df1 = pd.read_csv("data/reviewed_social_media_english.csv")
16
  df2 = pd.read_csv("data/reviewed_news_english.csv")
17
  df3 = pd.read_csv("data/tamil_social_media.csv")
18
  df4 = pd.read_csv("data/tamil_news.csv")
19
 
20
- # Normalize Text and Drop irrelevant data
21
- frames = [df1, df2, df3, df4]
22
- for frame in frames:
23
- frame['Domain'].replace("MUSLIM", "Muslim", inplace=True)
24
- frame.drop(frame[frame['Domain'] == 'Not relevant'].index, inplace=True)
25
- frame.drop(frame[frame['Domain'] == 'None'].index, inplace=True)
26
- frame.drop(frame[frame['Discrimination'] == 'None'].index, inplace=True)
27
- frame.drop(frame[frame['Sentiment'] == 'None'].index, inplace=True)
28
-
29
- # Concatenate/merge dataframes
30
- df_combined = pd.concat(frames)
 
31
  return df_combined
32
 
 
33
  df = load_and_clean_data()
34
 
35
- # Normalize Text
36
- df1['Domain'].replace("MUSLIM", "Muslim", inplace=True)
37
- df2['Domain'].replace("MUSLIM", "Muslim", inplace=True)
38
- df3['Domain'].replace("MUSLIM", "Muslim", inplace=True)
39
- df4['Domain'].replace("MUSLIM", "Muslim", inplace=True)
 
 
 
 
 
 
 
 
 
 
 
40
 
41
- # Drop irrelevant data
42
- frames = [df1, df2, df3, df4]
43
- for df in frames:
44
- df = df[df['Domain'] != 'Not relevant']
45
- df = df[df['Domain'] != 'None']
46
- df = df[df['Discrimination'] != 'None']
47
- df = df[df['Sentiment'] != 'None']
48
 
49
- # Concatenate/merge dataframes
50
- df = pd.concat(frames)
51
 
52
  # Visualization function
53
  def create_visualizations(df):
@@ -116,22 +124,6 @@ def render_dashboard():
116
 
117
  # ... [Other pages]
118
 
119
- # Define Sidebar Filters
120
- domain_options = df['Domain'].unique()
121
- channel_options = df['Channel'].unique()
122
- sentiment_options = df['Sentiment'].unique()
123
- discrimination_options = df['Discrimination'].unique()
124
-
125
- domain_filter = st.sidebar.multiselect('Select Domain', options=domain_options, default=domain_options)
126
- channel_filter = st.sidebar.multiselect('Select Channel', options=channel_options, default=channel_options)
127
- sentiment_filter = st.sidebar.multiselect('Select Sentiment', options=sentiment_options, default=sentiment_options)
128
- discrimination_filter = st.sidebar.multiselect('Select Discrimination', options=discrimination_options, default=discrimination_options)
129
-
130
- # Apply the filters to the dataframe
131
- df_filtered = df[(df['Domain'].isin(domain_filter)) &
132
- (df['Channel'].isin(channel_filter)) &
133
- (df['Sentiment'].isin(sentiment_filter)) &
134
- (df['Discrimination'].isin(discrimination_filter))]
135
 
136
  # Render the dashboard with filtered data
137
  render_dashboard(df_filtered)
 
10
  # Set page configuration
11
  st.set_page_config(layout="wide")
12
 
 
13
  def load_and_clean_data():
14
+ # Load data
15
  df1 = pd.read_csv("data/reviewed_social_media_english.csv")
16
  df2 = pd.read_csv("data/reviewed_news_english.csv")
17
  df3 = pd.read_csv("data/tamil_social_media.csv")
18
  df4 = pd.read_csv("data/tamil_news.csv")
19
 
20
+ # Concatenate dataframes
21
+ df_combined = pd.concat([df1, df2, df3, df4])
22
+
23
+ # Normalize Text
24
+ df_combined['Domain'] = df_combined['Domain'].replace("MUSLIM", "Muslim")
25
+
26
+ # Drop irrelevant data
27
+ df_combined = df_combined[df_combined['Domain'] != 'Not relevant']
28
+ df_combined = df_combined[df_combined['Domain'] != 'None']
29
+ df_combined = df_combined[df_combined['Discrimination'] != 'None']
30
+ df_combined = df_combined[df_combined['Sentiment'] != 'None']
31
+
32
  return df_combined
33
 
34
+ # Load and clean data
35
  df = load_and_clean_data()
36
 
37
+ # Define Sidebar Filters
38
+ domain_options = df['Domain'].unique()
39
+ channel_options = df['Channel'].unique()
40
+ sentiment_options = df['Sentiment'].unique()
41
+ discrimination_options = df['Discrimination'].unique()
42
+
43
+ domain_filter = st.sidebar.multiselect('Select Domain', options=domain_options, default=domain_options)
44
+ channel_filter = st.sidebar.multiselect('Select Channel', options=channel_options, default=channel_options)
45
+ sentiment_filter = st.sidebar.multiselect('Select Sentiment', options=sentiment_options, default=sentiment_options)
46
+ discrimination_filter = st.sidebar.multiselect('Select Discrimination', options=discrimination_options, default=discrimination_options)
47
+
48
+ # Apply the filters to the dataframe
49
+ df_filtered = df[(df['Domain'].isin(domain_filter)) &
50
+ (df['Channel'].isin(channel_filter)) &
51
+ (df['Sentiment'].isin(sentiment_filter)) &
52
+ (df['Discrimination'].isin(discrimination_filter))]
53
 
54
+ # Page navigation
55
+ page = st.sidebar.selectbox("Choose a page", ["Overview", "Sentiment Analysis", "Discrimination Analysis", "Channel Analysis"])
 
 
 
 
 
56
 
57
+ # Define a color palette for consistent visualization styles
58
+ color_palette = px.colors.sequential.Viridis
59
 
60
  # Visualization function
61
  def create_visualizations(df):
 
124
 
125
  # ... [Other pages]
126
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
127
 
128
  # Render the dashboard with filtered data
129
  render_dashboard(df_filtered)