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.
82 lines
3.6 KiB
82 lines
3.6 KiB
import pandas as pd
|
|
import psycopg2 as psy
|
|
import getpass
|
|
import matplotlib.pyplot as plt
|
|
|
|
data = pd. read_csv (r'vgsales.csv')
|
|
df = pd.DataFrame(data)
|
|
df = df.drop_duplicates()
|
|
|
|
co = None
|
|
|
|
try:
|
|
co = psy. connect(host='londres',
|
|
database ='dbanperederi',
|
|
user='anperederi',
|
|
password = getpass.getpass("Mot de passe:"))
|
|
|
|
#Q2 Afficher sous forme de courbe les résultats de la requête précédente.
|
|
datafr = pd.read_sql('''SELECT platform, SUM(eu_sales) as total_vente
|
|
FROM VGSales
|
|
GROUP BY platform;''', con=co)
|
|
|
|
fig = datafr.plot(x='platform', y='total_vente', kind='line', title='Ventes par plateforme en europe', figsize=(10, 5), legend=True, fontsize=12)
|
|
fig.set_xlabel('Platforme')
|
|
fig.set_ylabel('Ventes (en millions)')
|
|
fig.set_xticks(datafr.index)
|
|
fig.set_xticklabels(datafr['platform'], rotation=45)
|
|
plt.show()
|
|
|
|
#Q4
|
|
datafr = pd.read_sql('''SELECT platform, SUM(eu_sales) as total_vente
|
|
FROM VGSales
|
|
GROUP BY platform;''', con=co)
|
|
|
|
fig = datafr.plot(x='platform', y='total_vente', kind='bar', title='Ventes par plateforme en europe', figsize=(10, 5), legend=True, fontsize=12)
|
|
fig.set_xlabel('Platforme')
|
|
fig.set_ylabel('Ventes (en millions)')
|
|
fig.set_xticks(datafr.index)
|
|
fig.set_xticklabels(datafr['platform'], rotation=45)
|
|
plt.show()
|
|
|
|
|
|
#Q5
|
|
datafr = pd.read_sql('''SELECT platform, SUM(na_sales) as total_vente_na, SUM(eu_sales) as total_vente_eu, SUM(jp_sales) as total_vente_jp, SUM(other_sales) as total_vente_autre
|
|
FROM VGSales
|
|
GROUP BY platform;''', con=co)
|
|
|
|
fig = datafr.plot(x='platform', y=['total_vente_na', 'total_vente_eu', 'total_vente_jp', 'total_vente_autre'], kind='line', title='Ventes par plateforme', figsize=(10, 5), legend=True, fontsize=12)
|
|
fig.set_xlabel('Platforme')
|
|
fig.set_ylabel('Ventes (en millions)')
|
|
fig.set_xticks(datafr.index)
|
|
fig.set_xticklabels(datafr['platform'], rotation=45)
|
|
plt.show()
|
|
#Q6
|
|
datafr = pd.read_sql('''SELECT platform, SUM(na_sales) as total_vente_na, SUM(eu_sales) as total_vente_eu, SUM(jp_sales) as total_vente_jp, SUM(other_sales) as total_vente_autre
|
|
FROM VGSales
|
|
GROUP BY platform;''', con=co)
|
|
|
|
fig = datafr.plot(x='platform', y=['total_vente_na', 'total_vente_eu', 'total_vente_jp', 'total_vente_autre'], kind='line', title='Ventes par plateforme', figsize=(10, 5), legend=True, fontsize=12, style=['-', '--', '-.', ':'])
|
|
fig.set_xlabel('Platforme')
|
|
fig.set_ylabel('Ventes (en millions)')
|
|
fig.set_xticks(datafr.index)
|
|
fig.set_xticklabels(datafr['platform'], rotation=45)
|
|
plt.show()
|
|
|
|
#Q7
|
|
datafr = pd.read_sql('''SELECT platform, SUM(na_sales) as total_vente_na, SUM(eu_sales) as total_vente_eu, SUM(jp_sales) as total_vente_jp, SUM(other_sales) as total_vente_autre
|
|
FROM VGSales
|
|
GROUP BY platform;''', con=co)
|
|
|
|
fig = datafr.plot(x='platform', y=['total_vente_na', 'total_vente_eu', 'total_vente_jp', 'total_vente_autre'], kind='bar', title='Ventes par plateforme', figsize=(10, 5), legend=True, fontsize=12, style=['b', 'g', 'r', 'c'])
|
|
fig.set_xlabel('Platforme')
|
|
fig.set_ylabel('Ventes (en millions)')
|
|
fig.set_xticks(datafr.index)
|
|
fig.set_xticklabels(datafr['platform'], rotation=45)
|
|
plt.show()
|
|
|
|
except (Exception , psy.DatabaseError ) as error :
|
|
print ( error )
|
|
finally :
|
|
if co is not None:
|
|
co.close () |