Filtrer les lignes et colonnes par étiquette
Lors de l’analyse d’un jeu de données, il est souvent utile d’accéder à des lignes ou des colonnes précises en se basant sur leurs noms plutôt que sur leur position. Ce type de sélection, appelé filtrage par étiquette, permet d’extraire facilement des sous-ensembles du tableau en se référant directement aux étiquettes des lignes et des colonnes. C’est une méthode intuitive et lisible, particulièrement adaptée lorsque l’on souhaite manipuler des données en fonction de leur signification (comme un nom de colonne ou un identifiant d’entrée), et non de leur emplacement.
Fonctions :
-
loc[] (accès par étiquette)
La méthode loc[] permet de filtrer les lignes et les colonnes d'un DataFrame en utilisant des étiquettes (noms de lignes et de colonnes). Elle est utile pour accéder à des sous-ensembles spécifiques de données en fonction des indices ou des étiquettes de lignes et de colonnes.
Importation :
import pandas as pd
Attributs :
Paramètre Description row_label
Étiquette de la ligne à sélectionner. Peut être une valeur unique ou une liste d'étiquettes. column_label
Étiquette de la colonne à sélectionner. Peut être une valeur unique ou une liste d'étiquettes. Exemple de code :
import pandas as pd # Exemple de DataFrame data = { 'nom': ['Alice', 'Bob', 'Charlie', 'David'], 'âge': [24, 30, 35, 40], 'score': [88, 92, 75, 85], 'ville': ['Paris', 'Lyon', 'Marseille', 'Paris'] } df = pd.DataFrame(data) # Filtrer une ligne et une colonne spécifique avec loc[] resultat_1 = df.loc[1, 'nom'] # Récupère le nom de la ligne à l'index 1 print("Nom à la ligne 1 :", resultat_1) # Filtrer plusieurs lignes et colonnes avec loc[] resultat_2 = df.loc[0:2, ['nom', 'âge']] # Récupère les lignes de l'index 0 à 2 et les colonnes 'nom' et 'âge' print("\nLignes 0 à 2 avec les colonnes 'nom' et 'âge' :") print(resultat_2) # Filtrer par condition sur les lignes et les colonnes resultat_3 = df.loc[df['âge'] > 30, ['nom', 'score']] # Récupère les lignes où âge > 30 et les colonnes 'nom' et 'score' print("\nLignes où âge > 30 avec les colonnes 'nom' et 'score' :") print(resultat_3)
Explication du code :
- DataFrame : Un DataFrame est créé avec des informations fictives sur des personnes (nom, âge, score, ville).
- Accès à une valeur spécifique avec
loc[]
: La première opération récupère le nom de la personne à l'index 1. - Accès à plusieurs lignes et colonnes avec
loc[]
: La deuxième opération sélectionne les lignes d'index 0 à 2 et les colonnes "nom" et "âge". - Filtrage conditionnel avec
loc[]
: La troisième opération filtre les lignes où l'âge est supérieur à 30 et sélectionne les colonnes "nom" et "score". - Le résultat de chaque opération affiche la sélection filtrée.
Remarque :
loc[]
utilise les étiquettes de lignes et de colonnes. Cela diffère deiloc[]
qui utilise les indices numériques.- Les conditions peuvent être combinées à l’intérieur de
loc[]
pour filtrer les données selon des critères spécifiques.