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
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()
|
|
|