Voici un aperçu des principales fonctions et méthodes de Pandas que Julie (et vous!) devriez connaître pour votre entreprise.
1. Importation et lecture des données
import pandas as pd
import numpy as np
# Lecture de fichiers
df = pd.read_csv('fichier.csv')
df = pd.read_excel('fichier.xlsx', sheet_name='Feuille1')
df = pd.read_sql('SELECT * FROM table', connection)
df = pd.read_json('fichier.json')
2. Exploration des données
# Aperçu des données
df.head() # Afficher les 5 premières lignes
df.tail() # Afficher les 5 dernières lignes
df.shape # Dimensions (lignes, colonnes)
df.info() # Information sur le DataFrame
df.describe() # Statistiques descriptives
df.dtypes # Types de données
df.columns # Noms des colonnes
df.index # Index
df.isnull().sum() # Nombre de valeurs manquantes par colonne
3. Sélection et filtrage des données
# Sélectionner des colonnes
df['colonne'] # Une colonne
df[['colonne1', 'colonne2']] # Plusieurs colonnes
# Sélectionner des lignes
df.loc[10] # Ligne avec l'index 10
df.iloc[10] # 11ème ligne (index position)
df.loc[10:20] # Lignes de l'index 10 à 20
df.iloc[10:20] # Lignes 11 à 20 (positions)
# Filtrage
df[df['colonne'] > 100] # Valeurs > 100
df[(df['colonne1'] > 10) & (df['colonne2'] < 50)] # Conditions multiples
df[df['colonne'].isin(['A', 'B', 'C'])] # Valeurs dans une liste
df[df['colonne'].str.contains('texte')] # Contient du texte
4. Manipulation des données
# Tri
df.sort_values('colonne') # Tri croissant
df.sort_values('colonne', ascending=False) # Tri décroissant
df.sort_values(['col1', 'col2']) # Tri sur plusieurs colonnes
# Création de nouvelles colonnes
df['nouvelle_colonne'] = df['colonne1'] + df['colonne2']
df['catégorie'] = pd.cut(df['valeur'], bins=[0, 18, 35, 65, 100],
labels=['Enfant', 'Jeune', 'Adulte', 'Senior'])
# Appliquer des fonctions
df['colonne'].apply(lambda x: x*2)
df.apply(lambda x: x.max() - x.min())
5. Gestion des valeurs manquantes
# Détecter les valeurs manquantes
df.isnull() # True pour les valeurs manquantes
df.notnull() # True pour les valeurs non-manquantes
# Traiter les valeurs manquantes
df.fillna(0) # Remplacer par zéro
df['colonne'].fillna(df['colonne'].mean()) # Remplacer par la moyenne
df.dropna() # Supprimer les lignes avec valeurs manquantes
df.dropna(axis=1) # Supprimer les colonnes avec valeurs manquantes
6. Agrégation et groupement
# Grouper et agréger
df.groupby('colonne').mean() # Moyenne par groupe
df.groupby(['col1', 'col2']).sum() # Somme par groupe multi-niveaux
df.groupby('colonne').agg(['min', 'max', 'mean']) # Plusieurs agrégations
# Opérations avancées
df.groupby('département').agg({
'ventes': 'sum',
'clients': 'count',
'satisfaction': 'mean'
})
7. Jointure de données
# Différents types de jointures
pd.merge(df1, df2, on='id') # Inner join sur 'id'
pd.merge(df1, df2, on='id', how='left') # Left join
pd.merge(df1, df2, on='id', how='right') # Right join
pd.merge(df1, df2, on='id', how='outer') # Full outer join
# Jointure sur différentes colonnes
pd.merge(df1, df2, left_on='id_a', right_on='id_b')
8. Pivotage et restructuration
# Tableau croisé
pd.pivot_table(df, values='ventes', index='région',
columns='trimestre', aggfunc='sum', fill_value=0)
# Restructurer les données
df_long = pd.melt(df, id_vars=['région', 'date'],
value_vars=['ventes', 'coûts', 'profits'],
var_name='métrique', value_name='valeur')
9. Séries temporelles
# Conversion en datetime
df['date'] = pd.to_datetime(df['date'])
# Extraction d’éléments de date
df['année'] = df['date'].dt.year
df['mois'] = df['date'].dt.month
df['jour_semaine'] = df['date'].dt.day_name()
# Rééchantillonnage
df_mensuel = df.set_index('date').resample('M').sum()
df_hebdo = df.set_index('date').resample('W').mean()
10. Export des données
# Exporter vers différents formats
df.to_csv('fichier.csv', index=False)
df.to_excel('fichier.xlsx', sheet_name='Résultats')
df.to_sql('table', connection, if_exists='replace')
df.to_json('fichier.json')
11. Analyses statistiques et visualisation
# Statistiques
df['colonne'].value_counts() # Comptage des valeurs
df.corr() # Matrice de corrélation
df.cov() # Matrice de covariance
# Visualisation (avec matplotlib/seaborn)
import matplotlib.pyplot as plt
import seaborn as sns
df.plot(kind='bar') # Diagramme en barres
df.plot(kind='line') # Graphique linéaire
df.plot(kind='scatter', x='col1', y='col2') # Nuage de points
sns.heatmap(df.corr(), annot=True) # Carte de chaleur
12. Fonctions spécifiques pour l’entreprise
# Analyses financières
df['rendement'] = df['revenus'] / df['coûts']
df['marge'] = (df['prix'] - df['coût']) / df['prix'] * 100
df['croissance'] = df['ventes'].pct_change() * 100
# KPIs et tableaux de bord
performance = df.groupby('département').agg({
'ventes': ['sum', 'mean'],
'clients': 'count',
'satisfaction': ['mean', 'min']
}).round(2)
# Prévisions (avec des méthodes simples)
df['moyenne_mobile'] = df['ventes'].rolling(window=3).mean()
df['tendance'] = df['ventes'].ewm(span=12).mean()