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)
    Résultat du code

    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 de iloc[] 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.