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

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-woor­den­boek 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 Da­taF­ra­mes, kunt u de ge­lijk­waar­di­ge functie Series.isin() gebruiken.

Hoe gebruik je isin() met Da­taF­ra­mes in pandas

Je kunt isin() voor ver­schil­len­de doel­ein­den gebruiken. Naast het con­tro­le­ren van waarden, kan het ook worden gebruikt om Da­taF­ra­mes te filteren.

Con­tro­le­ren op waarden in een kolom

Laten we eerst eens kijken naar een DataFrame die in­for­ma­tie bevat over ver­schil­len­de 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 con­tro­le­ren of de steden in de kolom City voorkomen in een aparte lijst met steden die we hebben gemaakt. Zodra we de lijst met re­fe­ren­tie­ste­den 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 Boole­aan­se waarden die aangeven of elke stad in de kolom Stad voorkomt in de lijst 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 con­tro­le­ren

Voor com­plexe­re fil­ter­be­wer­kin­gen kunt u ook pandas isin() met woor­den­boe­ken gebruiken. In het volgende voorbeeld ziet u hoe u een woor­den­boek kunt gebruiken om meerdere kolommen van een DataFrame tegelijk te con­tro­le­ren. Eerst voegen we een kolom toe aan het oor­spron­ke­lij­ke DataFrame en ver­vol­gens 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 re­tour­neert het aanroepen isin() een DataFrame met Boole­aan­se waarden, die aangeven of aan de voor­waar­den 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