Introduction à Pandas
Filière: Ingénierie logicielle
AU: 2024/2025
Introduction à Pandas
À quoi sert Pandas?
Pandas est un outil essentiel pour gérer vos données. Grâce à Pandas,
vous pouvez explorer, nettoyer, transformer et analyser vos données.
Voici quelques fonctionnalités clés :
• Calculer des statistiques et répondre aux questions sur les données.
• Nettoyer les données en supprimant les valeurs manquantes ou en
filtrant les lignes et colonnes selon certains critères.
• Visualiser les données en s’appuyant sur Matplotlib pour créer des
graphiques comme des barres, des lignes, des histogrammes, etc.
• Enregistrer les données nettoyées et transformées dans un fichier
CSV, une autre base de données ou un autre format de fichier.
Introduction à Pandas
Comment Pandas s’intègre dans la boîte à outils de la science
des données ?
Pandas est construit sur la base de la bibliothèque NumPy, ce qui
signifie qu'il en reprend une grande partie de la structure. Les
données dans Pandas sont souvent utilisées pour :
• alimenter des analyses statistiques dans SciPy,
• créer des graphiques avec Matplotlib,
• et pour l’apprentissage automatique avec Scikit-learn.
Introduction à Pandas
Composants de base de Pandas : Series et DataFrames
Les deux composants principaux de Pandas sont les Series et les
DataFrames.
• Une Series correspond essentiellement à une colonne.
• Un DataFrame est une table multidimensionnelle composée d’un
ensemble de Series.
Introduction à Pandas
Créer un DataFrames de zéro
A partir d'un dictionnaire
Le moyen le plus courant de créer un DataFrame est d'utiliser un
dictionnaire où chaque clé représente une colonne et les valeurs
sont des listes ou des tableaux représentant les données de cette
colonne.
Exemple :
Introduction à Pandas
A partir d’une liste
Introduction à Pandas
À partir d'un tableau NumPy
Un ndarray NumPy peut aussi être utilisé pour créer un
DataFrame.
Introduction à Pandas
À partir d'une liste de dictionnaires
Une liste de dictionnaires permet de définir chaque ligne comme
un dictionnaire où les clés sont les noms des colonnes.
Introduction à Pandas
Ajouter des données au DataFrame
Après avoir créé un DataFrame, vous pouvez ajouter/supprimer des
colonnes ou lignes.
Ajouter une colonne
Introduction à Pandas
Supprimer une colonne
Vous pouvez supprimer une colonne en utilisant drop() avec
axis=1.
Introduction à Pandas
Ajouter une ligne
Pour ajouter une nouvelle ligne, utilisez la méthode loc.
Introduction à Pandas
Supprimer une ligne
Pour supprimer une ligne, utilisez drop() avec l'indice de la ligne
à supprimer.
Introduction à Pandas
Index personnalisé
Vous pouvez définir un index personnalisé lors de la création du
DataFrame.
Accès par index:
Introduction à Pandas
Affichage de vos données
La première étape lors de
l’ouverture d’un nouveau jeu
de données est d’afficher
quelques lignes pour en avoir
une référence visuelle.
Pour voir un nombre
spécifique de lignes, on peut
préciser un nombre, par
exemple [Link](10) pour
afficher les 10 premières
lignes.
Introduction à Pandas
Affichage des dernières lignes de données
Pour voir les cinq
dernières lignes
d'un DataFrame,
utilisez .tail(). Il est
également possible
de spécifier un
nombre.
Introduction à Pandas
Obtenir des informations sur les données
• La méthode .info() fournit les
informations essentielles du
jeu de données : nombre de
lignes et colonnes, nombre
de valeurs non nulles, types
de données de chaque
colonne et mémoire utilisée.
• Une autre propriété utile est
.shape, qui retourne un tuple
du type (lignes, colonnes) :
Introduction à Pandas
Comprendre vos variables
En utilisant .describe() sur un DataFrame, on obtient un résumé de la
distribution des variables continues.
Exemple:
Introduction à Pandas
Comprendre les variables catégorielles
describe() peut également être appliqué aux variables
catégorielles pour obtenir le nombre de lignes, le nombre de
catégories uniques, la catégorie la plus fréquente et la fréquence
de cette catégorie.
Introduction à Pandas
Relations entre variables continues
En utilisant la méthode .corr(), on peut générer les relations
(corrélations) entre chaque variable continue du DataFrame :
Introduction à Pandas
Slicing et sélection dans un DataFrame
Pour extraire une colonne en tant que Series, utilisez des crochets :
Ou bien
Introduction à Pandas
Pour extraire une ou plusieurs colonnes sous forme de DataFrame,
vous devez passer une liste des noms de colonnes.
Exemple:
Introduction à Pandas
Pour extraire des lignes, nous avons deux options :
.loc : Permet de localiser par nom (label).
Introduction à Pandas
.iloc : Permet de localiser par index numérique (position)
Introduction à Pandas
Sélection conditionnelle
Pour effectuer une sélection conditionnelle, prenez une colonne du
DataFrame et appliquez une condition booléenne.
Exemple :
Introduction à Pandas
Exemple :
Filtrer pour ne garder que les films réalisés par "Ridley Scott". On
veut exclure les films pour lesquels cette condition est False. Pour
obtenir les lignes où cette condition est vraie :
Introduction à Pandas
Sélections conditionnelles avancées
Pour des conditions plus complexes, utilisez les opérateurs logiques |
pour "ou" et & pour "et".
Exemple :
Filtrer pour afficher uniquement les films de Christopher Nolan Ou
Ridley Scott :
Introduction à Pandas
Sélections conditionnelles : Exercice
Filtrer les films sortis entre 2005 et 2010 ou ayant une note
supérieure à 8.0
Introduction à Pandas
Correction
Filtrer les films sortis entre 2005 et 2010 ou ayant une note
supérieure à 8.0
Introduction à Pandas
Appliquer des fonctions
Il est possible d'itérer sur un DataFrame ou une Series comme on le ferait
avec une liste, mais cela peut être lent pour les grands ensembles de
données. Une alternative plus efficace est d’utiliser .apply() pour appliquer
une fonction au DataFrame.
Par exemple, on pourrait
utiliser une fonction pour
transformer les films ayant
une note de 8.0 ou plus en
"bon" et les autres en
"mauvais" dans une nouvelle
colonne :
Introduction à Pandas
Appliquer des fonctions : Exercice
Créer une colonne "Rating_category" en utilisant une fonction
Lambda.
Introduction à Pandas
Correction
Créer une colonne "Catégorie de note" en utilisant une fonction
Lambda.
Introduction à Pandas
Trier les valeurs
Trier les lignes d’un DataFrame
permet souvent de repérer plus
facilement des informations
intéressantes.
Pour trier les lignes en fonction
d'une colonne donnée, utilisez
.sort_values().
Introduction à Pandas
Combinaison des données
L’un des atouts des DataFrames et Series réside dans la possibilité de
combiner plusieurs ensembles de données de façon
multifonctionnelle. Avec Pandas, vous pouvez :
• fusionner (merge()) des données sur des colonnes ou indices
communs (jointure interne par défaut),
• joindre (join()) des données sur une clé ou un index (jointure
gauche par défaut),
• concaténer (concat()) des DataFrames en lignes ou colonnes
(jointure externe par défaut).
Introduction à Pandas
Les concepts de inner, outer, left, et right sont utilisés pour spécifier
comment combiner des données lorsque vous effectuez une fusion
(merge), un joint (join), ou une concaténation (concat) dans pandas.
Introduction à Pandas
merge()
La méthode merge de pandas permet de combiner deux DataFrames
en fonction d'une ou plusieurs colonnes communes (ou index), tout
en choisissant la manière dont les correspondances sont effectuées
(inner, outer, left, right).
Lors de l'utilisation de merge(), vous devez fournir deux arguments
obligatoires :
Le DataFrame de gauche
Le DataFrame de droite
Introduction à Pandas
Après cela, vous pouvez ajouter des arguments optionnels pour
définir comment vos ensembles de données sont fusionnés :
how : Définit le type de fusion à réaliser (par défaut, "inner"). Les
options incluent "outer", "left" et "right".
on : Spécifie les colonnes ou indices de fusion, appelés clés de
jointure. Si rien n’est spécifié, les colonnes ayant des noms identiques
dans les deux DataFrames sont utilisées comme clés.
Introduction à Pandas
Fusion sur plusieurs colonnes
Vous pouvez fusionner des DataFrames sur plusieurs colonnes en
passant une liste de noms de colonnes au paramètre on.
Introduction à Pandas
left_on, right_on: Ces paramètres permettent de spécifier une
colonne ou un index présent uniquement dans le DataFrame de
gauche (left) ou de droite (right) utilisé pour la fusion.
Introduction à Pandas
left_index et right_index: Ces paramètres permettent d'utiliser les
index des DataFrames comme clés de fusion. Par défaut, ces options
sont désactivées (False). Si activées, elles remplacent les colonnes
comme clés de fusion.
Introduction à Pandas
join()
Bien que merge() soit une fonction de module, .join() est une
méthode d’instance propre aux DataFrames. Elle permet de spécifier
uniquement un DataFrame, qui joindra celui sur lequel on appelle
.join(). En arrière-plan, .join() utilise merge(), mais elle offre un moyen
plus efficace de joindre des DataFrames qu’un appel complet à
merge().
Introduction à Pandas
Comme merge(), .join() possède des paramètres qui offrent plus de
flexibilité :
other : Définit l’autre DataFrame à joindre. Vous pouvez aussi
spécifier une liste de DataFrames pour combiner plusieurs ensembles
en un seul appel.
Introduction à Pandas
on: Spécifie une colonne ou un index du DataFrame de gauche
comme clé pour joindre l’index du DataFrame de droite. Si non défini
(par défaut None), .join() effectue une jointure index sur index.
Introduction à Pandas
how: Définit le type de jointure. Les options sont similaires à celles de
merge()
lsuffix et rsuffix: Ces paramètres ajoutent des suffixes aux colonnes
ayant le même nom dans les deux DataFrames. Si plusieurs
DataFrames sont passés dans la liste pour other, ces suffixes
permettent de différencier les colonnes ayant des noms identiques.
Introduction à Pandas
sort: Le paramètre sort permet de trier le DataFrame résultant selon
la clé de jointure. Il prend un booléen (True ou False). Si True, le
résultat sera trié par l'index de la jointure.
Introduction à Pandas
concat()
La fonction [Link]() en pandas permet de concaténer (ou
combiner) plusieurs objets pandas, tels que des DataFrames ou des
Series, le long d’un axe spécifié (lignes ou colonnes).
Introduction à Pandas
Concaténation par lignes
Si vous souhaitez effectuer une concaténation sur les lignes, utilisez
axis=0 (Valeurs par défaut).
Exemple:
Introduction à Pandas
Concaténation par colonnes
Si vous souhaitez effectuer une concaténation sur les colonnes au lieu
des lignes, utilisez axis=1.
Exemple:
Introduction à Pandas
Autres paramètres de concat()
Join: Détermine l'alignement des colonnes/index.
• outer (par défaut) : Prend l'union des colonnes.
• inner : Prend l'intersection des colonnes.
Introduction à Pandas
ignore_index: Réinitialise les index si True.
Introduction à Pandas
keys: Ajoute un niveau hiérarchique pour différencier les DataFrames
concaténés.
Introduction à Pandas
verify_integrity: Vérifie qu'il n'y a pas de conflits d'index (lève une
erreur en cas de doublon).
Introduction à Pandas
Sort: L'argument sort détermine si les colonnes ou les index doivent
être triés lorsque des objets avec des colonnes ou index non alignés
sont concaténés.
Introduction à Pandas
Regrouper les données en Python
Analyser les données pour en tirer des informations précieuses
nécessite souvent de les transformer et de les agréger. La méthode
groupby() sépare les enregistrements en différentes catégories ou
groupes, permettant une analyse plus ciblée des données.
Exemple:
Introduction à Pandas
Fonctions d’agréation avec groupby
sum() : La fonction sum() calcule la somme des valeurs numériques pour chaque groupe.
Introduction à Pandas
mean(): Calcule la moyenne des valeurs pour chaque groupe.
Introduction à Pandas
agg(): Permet d’appliquer plusieurs fonctions d’agrégation (comme
mean, max, min) sur différentes colonnes.
Introduction à Pandas
Utilisation de idxmax et idxmin avec groupby
• idxmax() : Cette fonction retourne l'index de la première
occurrence de la valeur maximale dans une série ou un groupe
de données.
Exemple:
Introduction à Pandas
• idxmin() : Cette fonction retourne l'index de la première
occurrence de la valeur minimale dans une série ou un groupe
de données.
Exemple:
Introduction à Pandas
Regrouper les données: Exercice
1. Calculez la note moyenne IMDB pour les films de chaque année
2. Combien de films ont été produits par chaque réalisateur ?
3. afficher le nom des films ayant la durée la plus longue
pour chaque genre
Introduction à Pandas
Correction
1. Calculez la note moyenne IMDB pour les films de chaque année
2. Combien de films ont été produits par chaque réalisateur ?
3. Afficher le nom des films ayant la durée la plus longue pour
chaque genre
Introduction à Pandas
Manipulations des fichiers CSV et Json avec pandas
Lire et ecrire dans un fichier CSV
La fonction pd.read_csv() permet de charger un fichier CSV dans
un DataFrame pandas.
Introduction à Pandas
Options importanes de read_csv()
sep : Définit le séparateur (par défaut ,)
df = pd.read_csv("[Link]", sep=";")
header : Spécifie la ligne à utiliser comme en-tête (par défaut 0).
df = pd.read_csv("[Link]", header=None)
Introduction à Pandas
index_col : Colonne à utiliser comme index
df = pd.read_csv("imdb_top_movies.csv", index_col=0)
usecols : Lire uniquement certaines colonnes spécifiques
df = pd.read_csv("imdb_top_movies.csv", usecols=["Series_Title",
"IMDB_Rating"])
nrows : Lire un nombre limité de lignes
df = pd.read_csv("imdb_top_movies.csv", nrows=10)
Introduction à Pandas
Encoding: Définit le codage du fichier
df = pd.read_csv("[Link]", encoding="utf-8")
quotechar: Définit le caractère utilisé pour entourer les champs
contenant des délimiteurs.
df = pd.read_csv("[Link]", quotechar="'")
Introduction à Pandas
Écrire un DataFrame dans un fichier CSV
La fonction to_csv() permet d’enregistrer un DataFrame dans un
fichier CSV.
df.to_csv("imdb_top_movies_output.csv")
Introduction à Pandas
Options importantes de to_csv:
sep : Définir le séparateur (par défaut ,).
df.to_csv("imdb_top_movies_output.csv", sep=";")
index : Inclure ou non l’index dans le fichier (par défaut True).
df.to_csv("imdb_top_movies_output.csv", index=False)
columns : Spécifier les colonnes à inclure dans le fichier.
df.to_csv("imdb_top_movies_output.csv", columns=["Series_Title",
"Released_Year"])
Introduction à Pandas
Lire et Ecrire dans un fichier JSON
La fonction pd.read_json() permet de lire un fichier JSON.
df = pd.read_json("imdb_movies.json")
Introduction à Pandas
Options importantes de read_json:
orient : Détermine le format du JSON (records, index, columns,
etc).
df = pd.read_json("imdb_movies.json", orient="records")
lines : Lire des fichiers JSON ligne par ligne.
df = pd.read_json("imdb_movies.json", lines=True)
Introduction à Pandas
Écrire un DataFrame dans un fichier JSON
La fonction to_json() permet d’enregistrer un DataFrame au
format JSON.
df.to_json("imdb_top_movies_output.json", orient="records",
lines=True, indent=4)