Pandas est une bibliothèque open-source essentielle en Python pour la manipulation et l’analyse de données. Elle permet de travailler avec des ensembles de données sous forme de tableaux en offrant des outils puissants pour nettoyer, transformer et analyser les données efficacement.
Objectifs du cours : - Comprendre les structures de Pandas : Series et DataFrame. - Apprendre à charger, explorer et manipuler des données. - Effectuer des analyses et transformations avancées.
Si Pandas n’est pas encore installé, vous pouvez l’ajouter à votre environnement Python avec la commande suivante :
Une fois installé, importez Pandas :
L’alias pd
est une convention utilisée pour simplifier l’appel aux fonctions de la bibliothèque.
Pandas offre plusieurs méthodes pour créer des jeux de données ou les charger depuis divers formats.
Un DataFrame est une table composée de lignes et de colonnes, similaire à une feuille de calcul Excel ou une base de données SQL.
data = {
'Nom': ['Alice', 'Bob', 'Charlie'],
'Âge': [25, 30, 35],
'Salaire': [50000, 60000, 70000]
}
df = pd.DataFrame(data)
print(df)
Pourquoi utiliser un DataFrame ? - Il permet de manipuler facilement des données hétérogènes. - Il est conçu pour des opérations analytiques rapides et intuitives.
Pandas permet de lire des fichiers de différents formats : CSV, Excel, JSON, SQL, etc.
# Charger un fichier CSV
df = pd.read_csv("data.csv")
# Charger un fichier Excel
df = pd.read_excel("data.xlsx")
Exercice 1 : - Chargez un fichier CSV et affichez ses premières lignes. - Affichez le nombre total de lignes et de colonnes.
L’accès aux données est une étape essentielle pour manipuler efficacement un DataFrame.
Vous pouvez sélectionner une colonne spécifique comme suit :
Pour sélectionner plusieurs colonnes :
.loc
et .iloc
.loc
et .iloc
.loc
sélectionne les données par étiquette (nom des lignes ou colonnes)..iloc
sélectionne les données par indice numérique.Exemples :
# Sélection par étiquette avec loc
df.loc[0] # Sélectionne la première ligne
# Sélection par index numérique avec iloc
df.iloc[0] # Sélectionne la première ligne
Sélection de plusieurs lignes :
df.loc[1:2] # Sélectionne les lignes 1 à 2 (inclus)
df.iloc[0:2] # Sélectionne les deux premières lignes
Exercice 2 : - Sélectionnez toutes les personnes ayant un salaire supérieur à 50 000. - Affichez uniquement les colonnes ‘Nom’ et ‘Âge’.
Les jeux de données réels sont souvent incomplets ou mal structurés. Pandas offre des outils pour les corriger.
df.isnull().sum() # Compter les valeurs manquantes
df.fillna(df.mean(), inplace=True) # Remplacer les NaN par la moyenne
Pourquoi gérer les valeurs manquantes ? - Les valeurs manquantes peuvent fausser les résultats d’analyse. - Pandas permet de les remplacer ou les supprimer intelligemment.
df['Revenu Annuel'] = df['Salaire'] * 12 # Ajouter une colonne
df.drop(columns=['Âge'], inplace=True) # Supprimer une colonne
Pourquoi manipuler les colonnes ? - Permet de calculer de nouvelles métriques. - Aide à nettoyer les données pour faciliter l’analyse.
Exercice 3 : - Remplacez les valeurs NaN par la médiane. - Ajoutez une colonne calculant le double du salaire.
Pandas permet de manipuler et personnaliser les indices d’un DataFrame pour optimiser l’analyse des données.
Pourquoi utiliser des indices personnalisés ? - Permet d’accéder plus rapidement aux lignes spécifiques. - Facilite les jointures et les regroupements de données.
Pandas permet de trier les données selon différentes colonnes.
Pourquoi trier les données ?
Pandas permet d’améliorer les performances des manipulations de données.
category
Pourquoi utiliser category
?
Pourquoi charger en morceaux ?
Pandas permet d’exporter facilement les résultats de l’analyse sous différents formats.
df.to_csv('output.csv', index=False) # Sauvegarde en CSV
df.to_excel('output.xlsx', index=False) # Sauvegarde en Excel
df.to_json('output.json') # Sauvegarde en JSON
Pourquoi exporter les données ?
Pandas facilite le regroupement des données et leur analyse statistique.
Pourquoi utiliser GroupBy ?
Pourquoi les statistiques sont utiles ?
Exercice 4 :
Lorsqu’on travaille avec plusieurs ensembles de données, il est souvent nécessaire de les fusionner pour obtenir une vue d’ensemble cohérente. Pandas offre plusieurs méthodes pour combiner des DataFrames.
merge()
La méthode merge()
permet de fusionner deux DataFrames sur une colonne commune.
Pandas permet plusieurs types de jointures similaires aux bases de données SQL :
Parfois, il est nécessaire de concaténer des DataFrames, c’est-à-dire les empiler verticalement ou horizontalement.
df3 = pd.DataFrame({'ID': [4, 5], 'Nom': ['David', 'Emma']})
concat_vertical = pd.concat([df1, df3], ignore_index=True)
print(concat_vertical)
Pourquoi utiliser concat()
?
Dans certains cas, la fusion se fait sur plusieurs colonnes :
df1 = pd.DataFrame({'ID': [1, 2, 3], 'Nom': ['Alice', 'Bob', 'Charlie'], 'Ville': ['Paris', 'Lyon', 'Marseille']})
df2 = pd.DataFrame({'ID': [1, 2, 3], 'Ville': ['Paris', 'Lyon', 'Marseille'], 'Salaire': [50000, 60000, 70000]})
fusion_multi = pd.merge(df1, df2, on=['ID', 'Ville'])
print(fusion_multi)
Exercice 5 :
Ce cours vous a permis d’apprendre à :