Data Analysis

Maîtriser le Filtrage des DataFrames Pandas : Guide Complet

Spread the love

Pandas est une puissante bibliothèque Python pour la manipulation et l’analyse de données. Le filtrage des lignes d’un DataFrame en fonction des valeurs des colonnes est une tâche fondamentale du traitement des données. Cet article explore différentes techniques pour filtrer efficacement les DataFrames Pandas, couvrant des scénarios simples à complexes.

Table des matières

Filtrage de base : Colonne unique, condition unique

La forme la plus simple de filtrage consiste à sélectionner les lignes où une colonne spécifique correspond à une valeur particulière. Cela se fait à l’aide de l’indexation booléenne.


import pandas as pd

# DataFrame exemple
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 22, 28],
        'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)

# Sélectionner les lignes où City est 'London'
london_residents = df[df['City'] == 'London']
print(london_residents)

Ce code crée un masque booléen (df['City'] == 'London') qui est True lorsque la colonne ‘City’ est ‘London’ et False sinon. Ce masque est ensuite utilisé pour indexer le DataFrame, ne sélectionnant que les lignes où le masque est True.

Négation : Sélection des lignes qui ne correspondent pas à une condition

Pour sélectionner les lignes où une colonne ne contient pas une valeur spécifique, niez la condition booléenne à l’aide de l’opérateur !=.


# Sélectionner les lignes où City n'est PAS 'London'
not_london_residents = df[df['City'] != 'London']
print(not_london_residents)

Comparaisons numériques : Supérieur à, inférieur à, etc.

Pour les colonnes numériques, utilisez les opérateurs de comparaison (>, <, >=, <=) pour filtrer en fonction des plages de valeurs.


# Sélectionner les lignes où Age est supérieur à 25
older_than_25 = df[df['Age'] > 25]
print(older_than_25)

# Sélectionner les lignes où Age est inférieur ou égal à 25
younger_than_or_equal_to_25 = df[df['Age'] <= 25]
print(younger_than_or_equal_to_25)

Combinaison de conditions : Opérations ET et OU

Filtrer en fonction de plusieurs valeurs de colonne en combinant des conditions booléennes avec les opérateurs logiques & (ET) et | (OU). Encadrez chaque condition entre parenthèses.


# Sélectionner les lignes où City est 'London' ET Age est supérieur à 25
london_and_older = df[(df['City'] == 'London') & (df['Age'] > 25)]
print(london_and_older)

# Sélectionner les lignes où City est 'London' OU Age est supérieur à 25
london_or_older = df[(df['City'] == 'London') | (df['Age'] > 25)]
print(london_or_older)

Filtrage avancé : Plusieurs colonnes et logique complexe

Pour les scénarios complexes, la méthode query() offre une meilleure lisibilité.


# Utilisation de query() pour une meilleure lisibilité
complex_filter = df.query('(City == "London" and Age > 25) or (Age < 23)')
print(complex_filter)

Filtrage efficace avec isin()

La méthode isin() fournit un moyen concis de vérifier si des valeurs sont contenues dans une liste.


cities_to_include = ['London', 'Paris']
filtered_df = df[df['City'].isin(cities_to_include)]
print(filtered_df)

Cet article a démontré diverses techniques de filtrage des DataFrames dans Pandas. Le choix de la bonne méthode dépend de la complexité de vos critères de filtrage. N’oubliez pas d’utiliser correctement les parenthèses avec les opérateurs logiques pour garantir des résultats précis.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *