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.

88 lines
2.7 KiB

import pandas as pd
import psycopg2 as psy
import matplotlib.pyplot as plt
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 max(emission)emission, year, code FROM CO_DEUX WHERE code NOT LIKE 'OWID_WRL' GROUP BY year, code,emission HAVING emission = max(emission) ORDER BY year;''',con=co)
print(df4)
fig = df4.plot(x='code', y='year', legend=False, kind ='bar' ,style='-')
fig.set_title("Plus gros pollueur de chaque annee")
fig.set_xlabel("code du pays")
fig.set_ylabel("annee")
fig.set_xticks(df4.index)
fig.set_xticklabels(df4['code'], rotation='45')
plt.show()
df5 = pd.read_sql('''SELECT emission,code FROM CO_DEUX WHERE code NOT LIKE 'OWID_WRL' AND year = 2017 GROUP BY emission,code HAVING emission >= (SELECT avg(emission) FROM CO_DEUX WHERE year = 2017);''',con=co)
print(df5)
fig = df5.plot(y='code', autopct='%1.1f%%', kind='pie', legend=False)
fig.set_title("Pays dont l'émission de CO2 en 2017 dépasse la moyenne")
fig.set_ylabel("emissions (en tonnes)")
fig.set_ylim(0)
plt.show()
df6 = pd.read_sql('''SELECT avg(emission)moy, code FROM CO_DEUX GROUP BY code;''',con=co)
print(df6)
fig = df6.plot(x='code', y='moy', legend=False, style='-')
fig.set_title("Quantité d'émission (tonnes) en fonction des années")
fig.set_xlabel("code pays")
fig.set_ylabel("emissions moyennes (en tonnes)")
fig.set_xticks(df6.index)
fig.set_xticklabels(df6['code'], rotation='45')
# df6 = pd.read_sql('''SELECT * FROM CO_DEUX HAVING ;''',con=co)
# fig = df6.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()
co.commit()
except (Exception, psy.DatabaseError) as error :
print(error)
finally :
if co is not None:
co.close()