La fonction Python Pandas DataFrame.isin() sert à vérifier ra­pi­de­ment et ef­fi­ca­ce­ment si certaines valeurs sont présentes dans un DataFrame. Cette fonction est par­ti­cu­liè­re­ment utile lorsqu’on veut vérifier plusieurs valeurs en même temps.

La syntaxe de la fonction isin() de Pandas

Pandas isin() ne prend qu’un seul paramètre. Par con­sé­quent, la syntaxe de base de la fonction est très simple et se présente comme suit :

DataFrame.isin(values)
python

Le paramètre values peut être une liste Python, un dic­tion­naire Python ou un autre DataFrame et contient les valeurs à re­cher­cher dans le DataFrame original.

Conseil

Si vous ne tra­vail­lez pas avec les Da­ta­Frames de Pandas, mais plutôt avec des Series Pandas, il existe une fonction équi­va­lente : Series.isin().

Comment utiliser la fonction isin() de Pandas ?

Les pos­si­bi­li­tés d’uti­li­sa­tion de isin() sont multiples : à l’aide de cette fonction, vous pouvez non seulement vérifier la présence de valeurs, mais aussi filtrer votre DataFrame.

Vérifier la présence de valeurs dans une colonne

Nous allons main­te­nant examiner un DataFrame contenant des in­for­ma­tions sur dif­fé­rentes personnes et leur ville de résidence.

import pandas as pd
# Créer un exemple de DataFrame
data = {
    'Nom' : ['Alice', 'Bob', 'Charlie', 'David'],
    'Ville' : ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)
python

Le DataFrame se présente comme suit :

Nom      Ville
0   Alice     New York
1     Bob  Los Angeles
2  Charlie     Chicago
3   David    Houston

On veut ensuite vérifier avec la méthode isin() de Pandas si certaines villes sont présentes dans la colonne cor­res­pon­dante. Pour cela, on crée une liste appelée « cities_to_check » (traduit par « Villes à vérifier »), puis on exécute la fonction sur la colonne DataFrame nommée « Ville » :

# Villes à vérifier
cities_to_check = ['Chicago', 'Houston', 'Miami']
# Application de la méthode isin()
result = df['Ville'].isin(cities_to_check)
print(result)
python

Le résultat est une série de valeurs boo­léennes qui indiquent si la ville en question est présente dans la liste des villes à vérifier :

0 False
1 False
2 True
3 True
Nom : ville, dtype: bool

Filtrer des valeurs dans le DataFrame avec isin()

Le isin() de Pandas peut aussi être utilisé pour filtrer le DataFrame afin de ne conserver que les lignes contenant les villes présentes dans cities_to_check.

# Filtrer le DataFrame en se basant sur isin()
filtered_df = df[df['Ville'].isin(cities_to_check)]
print(filtered_df)
python

Le résultat est un DataFrame qui ne contient plus que des lignes avec les villes qui sont également présentes dans la liste de com­pa­rai­son cities_to_check :

Nom    Ville
2  Charlie   Chicago
3    David   Houston

Vérifier plusieurs colonnes

Pour effectuer des opé­ra­tions de filtrage plus complexes, isin() de Pandas peut aussi être utilisé avec des dic­tion­naires Python. L’exemple suivant montre comment tra­vail­ler avec un dic­tion­naire pour vérifier si­mul­ta­né­ment plusieurs colonnes d’un DataFrame. Pour cela, le DataFrame original est étendu d’une colonne et isin() est ensuite utilisé :

# Créer un exemple de DataFrame
data = {
    'Nom' : ['Alice', 'Bob', 'Charlie', 'David'],
    'Ville' : ['New York', 'Los Angeles', 'Chicago', 'Houston'],
    'Âge' : [25, 30, 35, 40]
}
df = pd.DataFrame(data)
# Dictionnaire des valeurs à vérifier
values_to_check = {
    'Ville' : ['Chicago', 'Houston'],
    'Âge' : [30, 40]
}
# Application de isin() avec un dictionnaire
result = df.isin(values_to_check)
print(result)
python

Dans ce cas, l’appel de fonction de isin() renvoie un DataFrame avec des valeurs boo­léennes qui indiquent si les con­di­tions sont remplies dans les colonnes res­pec­tives :

Nom    Ville    Âge
0  False   False  False
1  False   False   True
2  False    True  False
3  False    True   True
Aller au menu principal