%matplotlib inline
import pandas as pd
import sqlite3
import numpy as np
import matplotlib.pyplot as plt
c = sqlite3.connect("foodmart.db")
with c:
query = "SELECT * FROM product"
product_frame = pd.io.sql.read_sql(query, c)
print product_frame.shape
product_frame[:3]
with c:
query = "SELECT * FROM product_class"
product_class_frame = pd.io.sql.read_sql(query, c)
print product_class_frame.shape
product_class_frame[:30]
with c:
query = "SELECT * FROM sales_fact_1998"
sales_frame = pd.io.sql.read_sql(query, c)
print sales_frame.shape
sales_frame[:3]
with c:
query = "SELECT * FROM time_by_day"
time_frame = pd.io.sql.read_sql(query, c)
print time_frame.shape
time_frame[:3]
with c:
query = "SELECT * FROM customer"
customer_frame = pd.io.sql.read_sql(query, c)
print customer_frame.shape
customer_frame[:3]
with c:
query = "SELECT * FROM employee"
employee_frame = pd.io.sql.read_sql(query, c)
print employee_frame.shape
employee_frame[:3]
employee_frame.loc[:3,['employee_id','full_name']]
employee_frame.iloc[:3,[0,1]]
with c:
query = "SELECT * FROM salary"
salary_frame = pd.io.sql.read_sql(query, c)
print salary_frame.shape
salary_frame[1301:1304]
with c:
query = "SELECT * FROM region"
region_frame = pd.io.sql.read_sql(query, c)
print region_frame.shape
region_frame[:3]
with c:
query = "SELECT * FROM store"
store_frame = pd.io.sql.read_sql(query, c)
print store_frame.shape
store_frame[:3]
Afficher les employés qui gagnent plus de 3000 dollars
employee_frame[employee_frame.salary > 3000].loc[:,['employee_id','full_name','salary']]
liste des employés de l'Oregon
jointure_employee_store = store_frame.merge(employee_frame, on='store_id')
jointure_employee_store[ jointure_employee_store.store_state=='OR'].loc[:,['employee_id','full_name','salary']]
Afficher le nombre de magasins par pays puis par état
grouped = store_frame.groupby(['store_country','store_state'])
grouped.store_id.count()
Exo 1 : Trouvez le nombre de ventes (en 1998), le nombre de clients référencés, le nombre de magasins, et le nombre de références produits.
Exo 2 : afficher le nombre d'employés et la masse salariale
Exo 3: Donnez le nombre de ventes en fonction du jour de la semaine pour l’année 1998.
Exo 4 : Testez les disparités salariales entre hommes et femmes
Exo 5: donnez le chiffre d’affaires par trimestre pour les magasins de l’état de Washington (année 1998)
Exo 6 : Quelle est la catégorie de nourriture (product family = “food”) la plus vendue?
Représentation des données de la base selon différentes dimensions
exemple : on représente les ventes selon (1) la dimension géographique (pays, état) et (2) la dimension temporelle (les trimestres et mois de l'année)
jointure_sales_time_place = sales_frame.merge(time_frame, on='time_id').merge(store_frame, on='store_id')
T = pd.pivot_table(jointure_sales_time_place, values = 'store_sales', index = ['store_country','store_state','store_city'], columns = ['quarter','the_month'], aggfunc=np.sum)
T
Afficher l'évolution des ventes au cours de l'année dasn la ville d'Acapulco
T.iloc[1,:].plot(kind='bar')
Exo 7 : Donnez la répartition des ventes de boissons (beverages) par catégorie pour chaque trimestre et mois de l’année 1998? Choisissez le graphique le plus adapté pour représenter les données.
Exo 8 : Affichez les familles de produits puis catégories de produits achetés en fonction du nombre d'enfants à la maison. Choisissez le graphique le plus adapté pour représenter les données.
** Exo 9 **: Affichez le nombre d'heures supplémentaires (overtime_paid) en fonction de la période de l'année pour les différents metiers (position title). Choisissez le graphique le plus adapté pour représenter les données.
Exo 10 : Essayez d'estimer les disparités salariales en fonction du pays dans les différentes catégories managériales et metiers. Choisissez le graphique le plus adapté pour représenter les données.