You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.1 KiB
101 lines
3.1 KiB
import pandas as pd
|
|
import psycopg2 as psy
|
|
import matplotlib.pyplot as plt
|
|
import seaborn as sns
|
|
|
|
data = pd.read_csv(r'co2_emission.csv')
|
|
df = pd.DataFrame(data)
|
|
df2 = df.drop_duplicates()
|
|
co = None
|
|
|
|
|
|
try :
|
|
co = psy.connect(host='berlin',
|
|
database = 'dbmalanone',
|
|
user = 'malanone',
|
|
password = 'azertyuiop')
|
|
curs=co.cursor()
|
|
|
|
#Delete all the lines which has no data
|
|
curs.execute('''DELETE FROM CO_DEUX WHERE emission = 0''')
|
|
curs.execute('''DELETE FROM CO_DEUX WHERE code LIKE 'NaN' ''')
|
|
|
|
#Chart that picture the evolution of the emission in France
|
|
df3 = pd.read_sql('''SELECT * FROM CO_DEUX WHERE code LIKE 'FRA';''',con=co)
|
|
|
|
#Chart that picture the evolution of the emission in France
|
|
print(df3)
|
|
fig = df3.plot(x='year', y='emission', legend=False, style='-')
|
|
fig.set_title("Quantité d'émission (tonnes) en fonction des années")
|
|
fig.set_xlabel("annee")
|
|
fig.set_ylabel("emissions (en tonnes)")
|
|
|
|
plt.show()
|
|
|
|
|
|
df4 = pd.read_sql('''SELECT entity, year,emission FROM CO_DEUX WHERE emission = ANY(SELECT max(emission)emission FROM CO_DEUX WHERE year BETWEEN 2000 AND 2017 AND code NOT LIKE 'OWID_WRL' GROUP BY year) ORDER BY year;''',con=co)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print(df4)
|
|
fig = df4.plot(x='entity', y='emission', legend=False, style='-')
|
|
sns.barplot(data=df4 , x='year', y='emission', hue='entity')
|
|
fig.set_title("Plus gros pollueur de chaque annee, de 2000 à 2017")
|
|
fig.set_xlabel("code du pays")
|
|
fig.set_ylabel("emissions (en tonnes)")
|
|
fig.set_xticks(df4.index)
|
|
fig.set_xticklabels(df4['year'], rotation='45')
|
|
plt.show()
|
|
|
|
|
|
df5 = pd.read_sql('''SELECT entity, emission FROM CO_DEUX WHERE code NOT LIKE 'OWID_WRL' AND year = 2017 AND emission > (SELECT avg(emission) FROM CO_DEUX WHERE code NOT LIKE 'OWID_WRL' AND year = 2017);''',con=co)
|
|
print(df5)
|
|
fig = df5.plot(y='emission', autopct='%1.1f%%', labels=df5['entity'], kind='pie', legend=False)
|
|
fig.set_title("Pays dont l'émission de CO2 en 2017 dépasse la moyenne en fonction de leur poids dans le grapĥique")
|
|
fig.set_ylabel("emissions (en tonnes)")
|
|
fig.set_ylim(0)
|
|
plt.show()
|
|
|
|
|
|
df6 = pd.read_sql('''SELECT * FROM CO_DEUX WHERE code LIKE 'CHN' AND year BETWEEN 1980 AND 2017;''',con=co)
|
|
|
|
#Chart that picture the evolution of the emission in China
|
|
print(df6)
|
|
fig = df6.plot(x='year', y='emission', legend=False, kind='bar', style='-')
|
|
fig.set_title("Quantité d'émission (tonnes) en fonction des années")
|
|
fig.set_xlabel("annee")
|
|
fig.set_ylabel("emissions (en tonnes)")
|
|
|
|
plt.show()
|
|
|
|
|
|
df7 = pd.read_sql('''SELECT * FROM CO_DEUX WHERE code LIKE 'USA' AND year BETWEEN 1980 AND 2017;''',con=co)
|
|
|
|
#Chart that picture the evolution of the emission in China
|
|
print(df7)
|
|
fig = df7.plot(x='year', y='emission', legend=False, kind='bar', style='-')
|
|
fig.set_title("Quantité d'émission (tonnes) en fonction des années")
|
|
fig.set_xlabel("annee")
|
|
fig.set_ylabel("emissions (en tonnes)")
|
|
|
|
plt.show()
|
|
|
|
|
|
co.commit()
|
|
|
|
|
|
|
|
|
|
|
|
except (Exception, psy.DatabaseError) as error :
|
|
print(error)
|
|
|
|
finally :
|
|
if co is not None:
|
|
co.close()
|
|
|