Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import pandas as pd | |
| import seaborn as sns | |
| import matplotlib.pyplot as plt | |
| from wordcloud import WordCloud | |
| import re | |
| from wordcloud import STOPWORDS | |
| st.set_page_config( | |
| page_title="ESG for All", | |
| layout="wide", | |
| initial_sidebar_state="expanded") | |
| df = pd.read_csv('all_filings_esg_text.csv') | |
| with st.sidebar: | |
| st.title('ESG for All') | |
| year_list = list(df.Year.unique())[::-1] | |
| year_list = sorted(year_list) | |
| selected_year = st.selectbox('Select a year', year_list, index=len(year_list)-1) | |
| df_selected_year = df[df.Year == selected_year] | |
| cik_list = list(df.CIK.unique())[::-1] | |
| cik_list = sorted(cik_list) | |
| selected_cik = st.selectbox('Select a company', cik_list, index=len(cik_list)-1) | |
| df_selected_cik = df[df.CIK == selected_cik] | |
| def make_esgScoresPlot(df, cik): | |
| to_display = df[df['CIK'] == cik] | |
| to_display['Year'] = to_display['Year'].astype('string') | |
| to_display.sort_values('Year', inplace=True) | |
| to_display.set_index('Year', inplace=True) | |
| ax = sns.lineplot(data=to_display[['e_score', 's_score', 'g_score']] ) | |
| ax.xlabel('year') | |
| ax.ylabel('score') | |
| ax.title('ESG scores for ') | |
| ax.legend(title='Legend', loc='upper left') | |
| return ax | |
| col = st.columns((1.5, 4.5, 2), gap='medium') | |
| with col[1]: | |
| st.markdown('#### ESG Scores') | |
| esgScoresPlot = make_esgScoresPlot(df, selected_cik) | |
| esgScoresPlot | |