Introduction
Pandas est une bibliothèque Python puissante pour l’analyse et la manipulation de données. Elle facilite le traitement de grandes quantités de données, permettant de les explorer, nettoyer et transformer de manière efficace. Avec ses structures de données flexibles comme les DataFrames et Series, Pandas est l’outil privilégié pour le travail de données en science des données, finance, statistiques et bien plus.
Dans cet article, nous allons explorer les bases de Pandas et découvrir comment utiliser ses fonctionnalités pour simplifier vos projets d’analyse de données.
1. Installation de Pandas
Si vous n'avez pas encore Pandas, installez-le avec pip :
pip install pandas
Ensuite, importez Pandas dans votre code Python :
import pandas as pd
2. Les structures de données dans Pandas
Pandas repose sur deux structures principales :
- Series : pour les données 1D (semblable à une liste ou un tableau).
- DataFrame : pour les données 2D (semblable à une table avec lignes et colonnes).
2.1. Les Series : données 1D
Une Series est une structure de données unidimensionnelle avec des étiquettes d’index pour chaque élément.
Exemple de création d'une Series
import pandas as pd
# Créer une Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
Accéder aux éléments d’une Series
# Accéder à un élément par index
print(s['b']) # Affiche 2
2.2. Les DataFrames : données 2D
Le DataFrame est une structure de données bidimensionnelle qui organise les données sous forme de table, avec des lignes et des colonnes.
Exemple de création d'un DataFrame
# Créer un DataFrame avec un dictionnaire
data = {
'Nom': ['Alice', 'Bob', 'Charlie'],
'Âge': [25, 30, 35],
'Ville': ['Paris', 'Lyon', 'Marseille']
}
df = pd.DataFrame(data)
print(df)
3. Charger et sauvegarder des données avec Pandas
3.1. Charger des données depuis un fichier CSV
Pandas permet de lire directement des fichiers CSV dans un DataFrame.
df = pd.read_csv('fichier.csv')
print(df)
3.2. Sauvegarder un DataFrame dans un fichier CSV
Vous pouvez enregistrer un DataFrame dans un fichier CSV pour le conserver ou le partager.
df.to_csv('nouveau_fichier.csv', index=False)
3.3. Charger et sauvegarder des données en d'autres formats
Pandas prend en charge d’autres formats de données courants comme Excel, JSON, et SQL.
# Lecture d'un fichier Excel
df = pd.read_excel('fichier.xlsx')
# Sauvegarde d'un DataFrame en JSON
df.to_json('fichier.json')
4. Exploration des données
Pandas fournit des méthodes pour obtenir un aperçu rapide de vos données.
4.1. Afficher les premières et dernières lignes
head()
pour afficher les premières lignestail()
pour afficher les dernières lignes
print(df.head(5)) # Les 5 premières lignes
print(df.tail(3)) # Les 3 dernières lignes
4.2. Obtenir des informations générales
info()
pour obtenir un résumé du DataFramedescribe()
pour des statistiques descriptives sur les colonnes numériques
print(df.info())
print(df.describe())
5. Sélection et filtrage des données
Pandas offre de nombreuses options pour sélectionner et filtrer les données dans un DataFrame.
5.1. Sélection de colonnes
# Sélection d'une colonne
print(df['Nom'])
# Sélection de plusieurs colonnes
print(df[['Nom', 'Âge']])
5.2. Filtrer les lignes en fonction d’une condition
# Filtrer les lignes où l'âge est supérieur à 30
print(df[df['Âge'] > 30])
5.3. Utiliser les index loc
et iloc
pour une sélection avancée
loc
: sélection par labels (index)iloc
: sélection par position (indices numériques)
# Sélection par index avec loc
print(df.loc[0:1, ['Nom', 'Âge']]) # Les lignes 0 à 1 et colonnes 'Nom' et 'Âge'
# Sélection par position avec iloc
print(df.iloc[0:2, 0:2]) # Les deux premières lignes et colonnes
6. Manipulation et nettoyage des données
6.1. Ajouter et supprimer des colonnes
# Ajouter une colonne
df['Score'] = [85, 90, 95]
# Supprimer une colonne
df = df.drop('Score', axis=1)
6.2. Gérer les valeurs manquantes
Pandas permet de détecter et traiter les valeurs manquantes (NaN) dans un DataFrame.
# Remplacer les valeurs manquantes par 0
df = df.fillna(0)
# Supprimer les lignes contenant des valeurs manquantes
df = df.dropna()
6.3. Modifier les données d'une colonne
# Appliquer une transformation sur une colonne
df['Âge'] = df['Âge'] * 2 # Multiplie les âges par 2
7. Regrouper et agréger les données
La méthode groupby()
permet de regrouper les données selon une colonne, pour effectuer des calculs d’agrégation comme la somme, la moyenne, ou le nombre d’occurrences.
Exemple : Regrouper par ville et calculer l’âge moyen
grouped = df.groupby('Ville')['Âge'].mean()
print(grouped)
8. Fonctions d'agrégation
Pandas permet d'effectuer des calculs de somme, moyenne, minimum et maximum sur des colonnes spécifiques.
print(df['Âge'].sum()) # Somme des âges
print(df['Âge'].mean()) # Moyenne des âges
print(df['Âge'].min()) # Âge minimum
print(df['Âge'].max()) # Âge maximum
9. Fusion et jointure de DataFrames
Pandas facilite la fusion de plusieurs DataFrames, permettant d’effectuer des jointures pour combiner des données provenant de différentes sources.
Exemple : Fusion de DataFrames
df1 = pd.DataFrame({'Nom': ['Alice', 'Bob'], 'Âge': [25, 30]})
df2 = pd.DataFrame({'Nom': ['Alice', 'Bob'], 'Ville': ['Paris', 'Lyon']})
# Fusionner sur la colonne 'Nom'
df_merged = pd.merge(df1, df2, on='Nom')
print(df_merged)
10. Visualisation des données avec Pandas
Pandas intègre des fonctionnalités de visualisation basiques en s'appuyant sur Matplotlib. Une fois Matplotlib installé, vous pouvez visualiser directement des graphiques à partir de DataFrames.
Exemple de visualisation : Histogramme
import matplotlib.pyplot as plt
# Afficher un histogramme de la colonne Âge
df['Âge'].plot(kind='hist')
plt.xlabel('Âge')
plt.show()
Conclusion
Pandas est une bibliothèque incontournable pour l'analyse de données en Python. Grâce à ses structures de données et à ses nombreuses fonctionnalités, Pandas simplifie considérablement les tâches d’importation, de nettoyage, de manipulation et d’analyse des données. Avec les bases couvertes dans cet article, vous êtes maintenant prêt à explorer vos données et à appliquer des analyses plus poussées pour obtenir des insights précieux.