Global_Warming_Analysis / pages /Electricity use data Analysis.py
Um124's picture
update
0048423
raw
history blame
No virus
3.62 kB
import pandas as pd
import numpy as np
import plotly.express as px
import streamlit as st
st.set_page_config(
page_title='Electricity use data Analysis',
page_icon='πŸ“ˆ',
layout='wide'
)
Years=['1971','1972','1973','1974','1975','1976','1977','1978','1979','1980','1981','1982','1983','1984',
'1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995','1996','1997','1998','1999',
'2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012','2013','2014']
@st.cache_data
@st.cache
def load_data():
df=pd.read_csv('data/electricity_use_per_person.csv')
df.rename({'geo':'Country'},axis=1,inplace=True)
df.set_index('Country',inplace=True)
df.drop(['1960','1961','1962','1963','1964','1965','1966','1967','1968','1969','1970'],axis=1,inplace=True)
df.sort_values('Country',inplace=True)
df['Total']=df[Years].sum(axis=1)
df['Average']=df.mean(axis=1)
df['Minimum']=df.min(axis=1)
df['Maximum']=df.max(axis=1)
return df
st.title('Electricity use per Person')
df=load_data()
st.dataframe(df,use_container_width=True)
countries= df.index.unique().tolist()
Graphs = ['bar','pie','line','area','funnel']
c1,c2 = st.columns(2)
country = c1.selectbox("Select a Country", countries)
Graph = c2.selectbox("Select a Graph type", Graphs)
st.header('Country wise Visualization')
cdf = df.loc[country,Years].reset_index()
cdf.rename({'index':'Years'},axis=1, inplace=True)
if Graph == Graphs[0]:
fig = px.bar(cdf, 'Years',country, title=f'{country} electricity use per person')
if Graph == Graphs[1]:
fig = px.pie(cdf, 'Years',country, title=f'{country} electricity use per person')
if Graph == Graphs[2]:
fig = px.line(cdf, 'Years',country, title=f'{country} electricity use per person')
if Graph == Graphs[3]:
fig = px.area(cdf, 'Years',country, title=f'{country} electricity use per person')
if Graph == Graphs[4]:
fig = px.funnel(cdf, 'Years',country, title=f'{country} electricity use per person')
st.plotly_chart(fig, use_container_width=True)
st.header('Comparison of Country')
clist = st.multiselect("Select countries to compare", countries, default='India')
cdf = df.loc[clist, Years].T # T to rotate the data in 90deg
cdf.rename({'index':'Years'},axis=1,inplace=True)
st.write(cdf)
figc = px.line(cdf,cdf.index, clist, title=f'Comparing {", ".join(clist)}')
st.plotly_chart(figc, use_container_width=True)
df.sort_values(by='Total', ascending=False, inplace=True)
fig1=px.bar(df, x=df.index, y='Total',title='Total electricity use per person by Country')
st.plotly_chart(fig1,use_container_width=True)
dfavg = df.sort_values(by='Average').reset_index()
dfavg.rename({'index':'Country'},axis=1,inplace=True)
fig2=px.bar(dfavg, 'Country', 'Average', title="Average electricity use by Country")
st.plotly_chart(fig2,use_container_width=True)
dfmin=df.sort_values(by='Minimum').reset_index()
dfmin.rename({'index':'Country'},axis=1,inplace=True)
fig3=px.bar(dfmin,'Country','Minimum',title='Minimum electricity use by Country' )
st.plotly_chart(fig3,use_container_width=True)
dfmax=df.sort_values(by='Maximum').reset_index()
dfmax.rename({'index':'Country'},axis=1,inplace=True)
fig4=px.bar(dfmax,'Country','Maximum',title='Maximum electricity use by Country' )
st.plotly_chart(fig4,use_container_width=True)
dfcomp=df.sort_values(by='Country',ascending=False,inplace=True)
fig5 = px.line(df, x=df.index, y='Maximum',title='Maximum and Minimum electricity use comparisons')
fig5.add_scatter(x=df.index, y=df['Minimum'], mode='lines',)
st.plotly_chart(fig5,use_container_width=True)