Introduction à Pandas
1. Introduction à Pandas
Pandas est une bibliothèque Python utilisée pour la manipulation et l’analyse des données, principalement via ses deux structures de données principales :
Series
: Une colonne de données.DataFrame
: Une table de données à deux dimensions (lignes et colonnes).
Pour installer Pandas :
pip install pandas
Ensuite, importe la bibliothèque :
import pandas as pd
2. Création de DataFrames
Un DataFrame est une structure bidimensionnelle avec des axes (lignes et colonnes). Chaque colonne peut contenir des types de données différents (entiers, chaînes, flottants, etc.).
a) À partir d’un dictionnaire
La manière la plus simple de créer un DataFrame est d’utiliser un dictionnaire où les clés sont les noms des colonnes et les valeurs sont les listes de données correspondantes.
data = { 'Nom': ['Alice', 'Bob', 'Charlie'], 'Âge': [25, 30, 35], 'Ville': ['Paris', 'Lyon', 'Marseille']}
df = pd.DataFrame(data)print(df)
Cela produira un DataFrame comme ceci :
Nom Âge Ville0 Alice 25 Paris1 Bob 30 Lyon2 Charlie 35 Marseille
b) À partir d’une liste de listes
Un autre moyen est d’utiliser une liste de listes et de spécifier les noms de colonnes.
data = [ ['Alice', 25, 'Paris'], ['Bob', 30, 'Lyon'], ['Charlie', 35, 'Marseille']]
df = pd.DataFrame(data, columns=['Nom', 'Âge', 'Ville'])print(df)
c) À partir d’un fichier CSV
Il est très courant de charger des données à partir d’un fichier CSV. Pandas facilite cette opération.
df = pd.read_csv('chemin_vers_fichier.csv')print(df.head()) # Affiche les 5 premières lignes
3. Exploration d’un DataFrame
Une fois le DataFrame créé, voici quelques fonctions couramment utilisées pour l’explorer.
a) Afficher les premières lignes
Pour voir les premières ou dernières lignes d’un DataFrame :
print(df.head()) # Affiche les 5 premières lignesprint(df.tail(3)) # Affiche les 3 dernières lignes
b) Obtenir des informations générales
Pour obtenir une vue d’ensemble de la structure des données, Pandas propose des méthodes comme :
df.shape
: Retourne le nombre de lignes et de colonnes.df.info()
: Affiche des informations sur le type de données de chaque colonne.df.describe()
: Donne des statistiques descriptives pour les colonnes numériques (moyenne, écart-type, etc.).
print(df.shape) # Affiche (3, 3)print(df.info()) # Affiche des infos sur le DataFrameprint(df.describe()) # Affiche des stats descriptives des colonnes numériques
4. Accéder aux données dans un DataFrame
a) Accès aux colonnes
Tu peux accéder à une colonne d’un DataFrame de différentes manières :
# Accéder à une colonne sous forme de Seriesprint(df['Nom'])
# Accéder à plusieurs colonnesprint(df[['Nom', 'Ville']])
b) Accès aux lignes
Pour accéder aux lignes d’un DataFrame, tu peux utiliser les méthodes loc
(basé sur les labels) et iloc
(basé sur les indices).
# Accéder à la première ligne avec loc (label basé)print(df.loc[0])
# Accéder à la première ligne avec iloc (index basé)print(df.iloc[0])
# Slicing pour plusieurs lignesprint(df.iloc[0:2]) # Lignes de l’indice 0 à 1
c) Filtrage des données
Le filtrage des lignes selon des conditions est très pratique avec Pandas. Utilise des conditions pour filtrer les données.
# Filtrer les lignes où l'âge est supérieur à 28print(df[df['Âge'] > 28])
# Filtrer les lignes où la ville est Parisprint(df[df['Ville'] == 'Paris'])
5. Modification des données
a) Ajouter des colonnes
Tu peux ajouter une nouvelle colonne en assignant des valeurs à celle-ci.
# Ajouter une colonne "Score" avec des valeursdf['Score'] = [85, 90, 88]print(df)
b) Supprimer des colonnes ou des lignes
Utilise drop()
pour supprimer des colonnes ou des lignes.
# Supprimer la colonne "Score"df = df.drop('Score', axis=1)
# Supprimer la ligne à l'index 0df = df.drop(0, axis=0)
c) Remplacer les valeurs manquantes (NaN)
Les valeurs manquantes sont souvent présentes dans les jeux de données réels. Pandas offre plusieurs méthodes pour gérer ces valeurs.
# Remplacer les NaN par une valeur spécifiquedf['Âge'] = df['Âge'].fillna(0) # Remplacer les NaN par 0
d) Modification en place
Il est souvent nécessaire de modifier les données existantes, par exemple pour mettre à jour les valeurs d’une colonne :
# Ajouter 5 à l'âge de chaque personnedf['Âge'] = df['Âge'] + 5
6. Opérations sur les données
a) GroupBy
La méthode groupby()
est utilisée pour grouper les données selon une ou plusieurs colonnes et appliquer des opérations d’agrégation (somme, moyenne, etc.).
# Groupement par "Ville" et moyenne d'âgegrouped = df.groupby('Ville')['Âge'].mean()print(grouped)
b) Tri
Tu peux trier les données d’un DataFrame avec la méthode sort_values()
:
# Trier par la colonne "Âge"df_sorted = df.sort_values(by='Âge', ascending=False)print(df_sorted)
7. Opérations sur les chaînes de caractères
Pandas permet de manipuler les chaînes de caractères dans les colonnes de type texte via la propriété str
.
# Convertir les noms en majusculesdf['Nom'] = df['Nom'].str.upper()
# Vérifier si les villes contiennent une sous-chaînedf['Ville_Contient_S'] = df['Ville'].str.contains('s')print(df)
8. Opérations avec les dates
Pandas permet également de travailler avec les dates de manière efficace. Il est souvent nécessaire de convertir une colonne en format datetime pour effectuer des opérations temporelles.
# Convertir une colonne en type datetimedf['Date'] = pd.to_datetime(df['Date'])
# Extraire l'annéedf['Année'] = df['Date'].dt.year
9. Sauvegarder un DataFrame
Après avoir manipulé et analysé un DataFrame, il est courant de vouloir l’exporter dans un fichier.
a) Sauvegarder en CSV
df.to_csv('fichier_sortie.csv', index=False)
b) Sauvegarder en Excel
df.to_excel('fichier_sortie.xlsx', index=False)
10. Conclusion : Apprendre les DataFrames avec Pandas
Pandas DataFrames sont des structures extrêmement puissantes pour manipuler des données tabulaires en Python. Leur souplesse et l’énorme gamme de fonctions qu’ils offrent pour l’exploration, la modification, et l’analyse de données en font un outil indispensable pour la science des données, le machine learning, et le traitement de données à grande échelle.
Points clés à retenir :
- Création et exploration des DataFrames : Manipuler des données sous forme de tableaux à deux dimensions.
- Accès aux données : Utilisation des méthodes
loc
etiloc
pour accéder aux lignes et colonnes. - Filtrage, tri et agrégation : Application d’opérations pour nettoyer et transformer les données.
- Manipulation de chaînes et dates : Outils intégrés pour gérer efficacement les données textuelles et temporelles.
En maîtrisant les DataFrames, tu auras les bases solides pour aborder l’analyse de données avancée et travailler sur des projets de machine learning ou des études statistiques.