Bibliothèque « pandas »
Bibliothèque « pandas » ou module « csv » ?⚓︎
Utiliser pandas plutôt que le module csv intégré de Python dépend du type de tâches que l'on souhaite accomplir avec vos données. Voici quelques situations où pandas est généralement plus approprié :
-
Manipulation complexe des données : si on a besoin de manipuler des données de manière complexe, comme le filtrage, l'agrégation, la transformation ou le nettoyage,
pandasoffre des fonctionnalités bien plus puissantes et intuitives que le modulecsv. -
Gestion des données manquantes :
pandasa des outils intégrés pour gérer les données manquantes, ce qui est courant dans les ensembles de données réelles. Le modulecsvne fournit pas de tels outils. -
Lecture et écriture de divers formats de fichiers : bien que le module
csvsoit limité à la lecture et à l'écriture de fichiers CSV,pandaspeut lire et écrire dans divers formats, y compris Excel, SQL, JSON, et plus encore. -
Analyse de données : si on a besoin de calculer des statistiques, de regrouper des données, ou de créer des visualisations,
pandass'intègre bien avec d'autres bibliothèques commeNumPyetMatplotlib, ce qui facilite ces tâches. -
Performance : pour de grands ensembles de données,
pandasest souvent plus performant grâce à son utilisation de structures de données optimisées et de fonctions vectorisées. -
Facilité d'utilisation :
pandasoffre une API de haut niveau qui simplifie de nombreuses tâches courantes de manipulation de données, ce qui peut rendre votre code plus lisible et plus concis.
En revanche, le module csv peut être suffisant si vous avez simplement besoin de lire ou d'écrire des fichiers CSV sans effectuer de manipulations complexes. Il est également utile si vous travaillez dans un environnement avec des ressources limitées où l'installation de pandas n'est pas pratique.
En résumé, utilisez pandas pour des tâches d'analyse et de manipulation de données avancées, et le module csv pour des opérations simples et légères sur des fichiers CSV.
Intérêt de la bibliothèque « pandas »⚓︎
La bibliothèque pandas est un outil puissant et largement utilisé en Python pour la manipulation et l'analyse de données. Voici quelques-uns de ses principaux avantages :
Structures de données flexibles⚓︎
pandas introduit deux structures de données principales, les Series et les DataFrames, qui permettent de manipuler facilement des données tabulaires et des séries temporelles.
Series
Une Series est une structure de données unidimensionnelle. On peut créer une Series à partir d'une seule colonne de données, par exemple :
-
DataFrame:Un
DataFrameest une structure de données bidimensionnelle qui peut contenir plusieursSeriescomme colonnes. Voici comment créer un DataFrame :Script
🐍 Editeurimport pandas as pd # Données des joueurs de tennis de table data = { 'Nom': ['LEBRUN', 'CALDERANO', 'HARIMOTO', 'MOREGARD', 'LIN', 'WANG'], 'Prenom': ['Félix', 'Hugo', 'Tomakozu', 'Truls', 'Shidong', 'Chuqin'], 'Pays': ['France', 'Brésil', 'Japon', 'Suède', 'Chine', 'Chine'], 'Classement_Mondial': [6, 3, 4, 7, 1, 2] } # Créer un DataFrame df_joueurs = pd.DataFrame(data) print("\nExemple de DataFrame :") print(df_joueurs)
Manipulation de données⚓︎
Elle offre des fonctionnalités pour manipuler des données, comme le filtrage, l'indexation, le réindexage, la fusion, la concaténation et le remodelage des jeux de données.
-
Filtrage
Supposons que l'on veut filtrer les joueurs en fonction de leur classement mondial ou de leur pays. Voici comment faire :
Script
🐍 Editeurimport pandas as pd # Données des joueurs de tennis de table data = { 'Nom': ['LEBRUN', 'CALDERANO', 'HARIMOTO', 'MOREGARD', 'LIN', 'WANG'], 'Prenom': ['Félix', 'Hugo', 'Tomakozu', 'Truls', 'Shidong', 'Chuqin'], 'Pays': ['France', 'Brésil', 'Japon', 'Suède', 'Chine', 'Chine'], 'Classement_Mondial': [6, 3, 4, 7, 1, 2] } # Créer un DataFrame df_joueurs = pd.DataFrame(data) # Filtrer les joueurs avec un Classement_Mondial supérieur à 5 joueurs_filtres_classement = df_joueurs[df_joueurs['Classement_Mondial'] > 5] print("Joueurs avec un classement mondial supérieur à 5:") print(joueurs_filtres_classement) # Filtrer les joueurs d'un pays spécifique, par exemple la Chine joueurs_filtres_pays = df_joueurs[df_joueurs['Pays'] == 'Chine'] print("\nJoueurs de Chine:") print(joueurs_filtres_pays) # Filtrer les joueurs avec un Classement_Mondial inférieur à 4 et provenant du Brésil joueurs_filtres_combines = df_joueurs[(df_joueurs['Classement_Mondial'] < 4) & (df_joueurs['Pays'] == 'Brésil')] print("\nJoueurs avec un classement mondial inférieur à 4 et provenant du Brésil:") print(joueurs_filtres_combines)Résultat
▶️ ConsoleJoueurs avec un classement mondial supérieur à 5: Nom Prenom Pays Classement_Mondial 0 LEBRUN Félix France 6 3 MOREGARD Truls Suède 7 Joueurs de Chine: Nom Prenom Pays Classement_Mondial 4 LIN Shidong Chine 1 5 WANG Chuqin Chine 2 Joueurs avec un classement mondial inférieur à 4 et provenant du Brésil: Nom Prenom Pays Classement_Mondial 1 CALDERANO Hugo Brésil 3 -
Indexation avec une
SeriesSupposons que l'on a une
Seriescontenant les noms des joueurs :Script
🐍 Editeurimport pandas as pd # Données des noms des joueurs noms = pd.Series(['LEBRUN', 'CALDERANO', 'HARIMOTO', 'MOREGARD', 'LIN', 'WANG'], name='Nom') # Accéder au premier élément de la Series premier_nom = noms.iloc[0] print("Premier nom dans la Series:") print(premier_nom) # Accéder aux trois premiers éléments de la Series trois_premiers_noms = noms.iloc[:3] print("\nTrois premiers noms dans la Series:") print(trois_premiers_noms) -
Indexation avec un
DataFrameSupposons que l'on a un
DataFramecontenant les données des joueurs :Script
🐍 Editeurimport pandas as pd # Données des joueurs de tennis de table data = { 'Nom': ['LEBRUN', 'CALDERANO', 'HARIMOTO', 'MOREGARD', 'LIN', 'WANG'], 'Prenom': ['Félix', 'Hugo', 'Tomakozu', 'Truls', 'Shidong', 'Chuqin'], 'Pays': ['France', 'Brésil', 'Japon', 'Suède', 'Chine', 'Chine'], 'Classement_Mondial': [6, 3, 4, 7, 1, 2] } # Créer un DataFrame df_joueurs = pd.DataFrame(data) # Accéder à la première ligne du DataFrame premiere_ligne = df_joueurs.iloc[0] print("\nPremière ligne du DataFrame:") print(premiere_ligne) # Accéder à la colonne 'Nom' colonne_nom = df_joueurs['Nom'] print("\nColonne 'Nom' du DataFrame:") print(colonne_nom) # Accéder à un élément spécifique (par exemple, le prénom du deuxième joueur) prenom_deuxieme_joueur = df_joueurs['Prenom'].iloc[1] print("\nPrénom du deuxième joueur:") print(prenom_deuxieme_joueur) -
Gestion des données manquantes :
pandasfournit des outils pour gérer les données manquantes, ce qui est courant dans les ensembles de données du monde réel. -
Fonctionnalités d'entrée/sortie : elle permet de lire et d'écrire des données dans divers formats, y compris CSV, Excel, SQL, et bien d'autres.
-
Agrégation et transformation de données :
pandasfacilite l'agrégation de données, le calcul de statistiques descriptives, et l'application de fonctions aux données. -
Intégration avec d'autres bibliothèques : elle s'intègre bien avec d'autres bibliothèques Python comme
NumPy,Matplotlib, etscikit-learn, ce qui en fait un outil central dans l'écosystème de science des données en Python. -
Performance :
pandasest optimisé pour les performances et peut gérer de grands ensembles de données de manière efficace. -
Facilité d'utilisation : malgré sa puissance,
pandasest conçu pour être intuitif et facile à utiliser, ce qui le rend accessible même aux débutants en programmation.
En résumé, pandas est un outil essentiel pour quiconque travaille avec des données en Python, que ce soit pour le nettoyage, l'analyse ou la visualisation des données.
Utilisation du module « pandas »⚓︎
Pour des opérations plus avancées, la bibliothèque pandas est très utile.
Lire un fichier CSV avec pandas
import pandas as pd
# Lecture du fichier CSV
table = pd.read_csv('joueurs_tt.csv')
# Affichage des 5 premières lignes
print(table.head())
# Affichage d'une ligne de séparation
print('-'*80)
# Affichage de toutes les données
print(table)
Nom Prenom Pays Classement_Mondial
0 LEBRUN Félix France 6
1 CALDERANO Hugo Brésil 3
2 HARIMOTO Tomakozu Japon 4
3 MOREGARD Truls Suède 7
4 LIN Shidong Chine 1
--------------------------------------------------------------------------------
Nom Prenom Pays Classement_Mondial
0 LEBRUN Félix France 6
1 CALDERANO Hugo Brésil 3
2 HARIMOTO Tomakozu Japon 4
3 MOREGARD Truls Suède 7
4 LIN Shidong Chine 1
5 WANG Chuqin Chine 2
Écrire dans un fichier CSV avec pandas
import pandas as pd
data = pd.DataFrame({
'Nom': ['LEBRUN', 'CALDERANO', 'HARIMOTO', 'MOREGARD', 'LIN', 'WANG'],
'Prenom': ['Félix', 'Hugo', 'Tomakozu', 'Truls', 'Shidong', 'Chuqin'],
'Pays': ['France', 'Brésil', 'Japon', 'Suède', 'Chine', 'Chine'],
'Classement_Mondial': [6, 3, 4, 7, 1, 2]
})
data.to_csv('joueurs_tt.csv', index=False)
Principales fontionnalités de « pandas »⚓︎
La bibliothèque pandas offre de nombreuses fonctions courantes qui facilitent la manipulation et l'analyse des données. Voici quelques-unes des fonctions les plus utilisées :
Lecture et écriture de données :
pd.read_csv(): lit un fichier CSV dans un Dataframe.pd.read_excel(): lit un fichier Excel dans un Dataframe.df.to_csv(): écrit un DataFrame dans un fichier CSV.df.to_excel(): écrit un DataFrame dans un fichier Excel.
Inspection des données :
df.head(n): affiche les n premières lignes du DataFrame.df.tail(n): affiche les n dernières lignes du DataFrame.df.info(): affiche un résumé concis du DataFrame.df.describe(): génère des statistiques descriptives du DataFrame.
Sélection et indexation :
df['colonne']: sélectionne une colonne spécifique.df.loc[]: sélectionne des lignes et des colonnes par étiquettes.df.iloc[]: sélectionne des lignes et des colonnes par indices.
Manipulation des données :
df.drop(): supprime des lignes ou des colonnes.- `df.fillna() : remplace les valeurs manquantes.
df.dropna(): supprime les valeurs manquantes.df.rename(): renomme les colonnes ou les indices.
Agrégation et transformation :
df.groupby(): groupe les données par une ou plusieurs colonnes.df.agg(): applique une ou plusieurs fonctions d'agrégation.df.sum(), df.mean(), df.min(), df.max() : calcule des statistiques sur les colonnes.
Fusion et concaténation :
pd.merge(): fusionne des DataFrames.pd.concat(): concatène des DataFrames.
Application de fonctions :
df.apply(): applique une fonction le long d'un axe du DataFrame.df.map(): applique une fonction élément par élément sur une Series.
Tri et réindexation :
df.sort_values(): trie les valeurs d'une colonne.df.sort_index(): trie l'index du DataFrame.df.reset_index(): réinitialise l'index du DataFrame.
Ces fonctions sont essentielles pour effectuer des tâches courantes de manipulation et d'analyse de données avec pandas.

