De Python pandas-functie DataFrame.isin() is ontworpen om snel en efficiënt te controleren of bepaalde waarden in een DataFrame voorkomen. Deze functie is vooral handig om meerdere waarden tegelijk te controleren.

Wat is de syntaxis voor pandas isin()?

Pandas isin() neemt één parameter en ziet er als volgt uit:

DataFrame.isin(values)
python

De parameter values kan een Python-lijst, een Python-woordenboek of een ander DataFrame zijn. Deze bevat de waarden die u in het DataFrame wilt zoeken.

Tip

Als u met pandas Series werkt in plaats van DataFrames, kunt u de gelijkwaardige functie Series.isin() gebruiken.

Hoe gebruik je isin() met DataFrames in pandas

Je kunt isin() voor verschillende doeleinden gebruiken. Naast het controleren van waarden, kan het ook worden gebruikt om DataFrames te filteren.

Controleren op waarden in een kolom

Laten we eerst eens kijken naar een DataFrame die informatie bevat over verschillende mensen en waar ze wonen.

import pandas as pd
# Creating a DataFrame
data = {
    'Name': ['Amir', 'Bella', 'Charlize', 'David'],
    'City': ['Nottingham', 'London', 'Cardiff', 'Hull']
}
df = pd.DataFrame(data)
print(df)
python

Het DataFrame ziet er als volgt uit:

Name      City
0    Amir    	Nottingham
1    Bella  	London
2    Charlize   Cardiff
3    David    Hull

Nu willen we pandas isin() gebruiken om te controleren of de steden in de kolom City voorkomen in een aparte lijst met steden die we hebben gemaakt. Zodra we de lijst met referentiesteden hebben gemaakt, voeren we de functie uit op de kolom ‘City’ van het DataFrame:

# Cities for the list to be compared to
cities_to_check_against = ['Cardiff', 'Hull', 'Middlesbrough']
# Using the isin() method
result = df['City'].isin(cities_to_check_against)
print(result)
python

Het resultaat is een reeks Booleaanse waarden die aangeven of elke stad in de kolom Stad voorkomt in de lijst met cities_to_check_against:

0    False
1    False
2     True
3     True
Name: City, dtype: bool

Een DataFrame filteren met behulp van isin()

Je kunt ook pandas isin() gebruiken om een DataFrame te filteren, waarbij alleen de rijen met steden die in de lijst cities_to_check_against voorkomen, worden behouden.

# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)
python

Het resultaat is een DataFrame die alleen de rijen bevat met steden die ook in de lijst cities_to_check_against staan:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Meerdere kolommen in een DataFrame controleren

Voor complexere filterbewerkingen kunt u ook pandas isin() met woordenboeken gebruiken. In het volgende voorbeeld ziet u hoe u een woordenboek kunt gebruiken om meerdere kolommen van een DataFrame tegelijk te controleren. Eerst voegen we een kolom toe aan het oorspronkelijke DataFrame en vervolgens gebruiken we isin():

# Creating a DataFrame
data = {
    'Name': ['Amir', 'Bella', 'Charlize', 'David'],
    'City': ['Nottingham', 'London', 'Cardiff', 'Hull'],
    'Age': [25, 30, 35, 40]
}
df = pd.DataFrame(data)
# Dictionary with values that the DataFrame should be checked against
values_to_check_against = {
    'City': ['Cardiff', 'Hull'],
    'Age': [30, 40]
}
# Using isin() with a dictionary
result = df.isin(values_to_check_against)
print(result)
python

In dit geval retourneert het aanroepen van isin() een DataFrame met Booleaanse waarden, die aangeven of aan de voorwaarden in elke kolom is voldaan:

Name  City  Age
0  False  False  False
1  False  False   True
2  False   True  False
3  False   True   True
Ga naar hoofdmenu