Python -funk­tio­nen pandas DataFrame.isin() er designet til hurtigt og effektivt at kon­trol­le­re , om bestemte værdier findes i en DataFrame. Denne funktion er især nyttig til at kon­trol­le­re flere værdier på én gang.

Hvad er syntaksen for pandas isin()?

Pandas isin() tager én parameter og ser sådan ud:

DataFrame.isin(values)
python

Pa­ra­me­te­ren values kan være en Python-liste, en Python-ordbog eller en anden DataFrame. Den in­de­hol­der de værdier, du vil søge efter i DataFrame.

Tip

Hvis du arbejder med pandas Series i stedet for Da­ta­F­ra­mes, kan du bruge den til­sva­ren­de funktion Series.isin().

Sådan bruges isin() med Da­ta­F­ra­mes i pandas

Du kan bruge isin() til for­skel­li­ge formål. Ud over at kon­trol­le­re værdier kan det også bruges til at filtrere Da­ta­F­ra­mes.

Kontrol af værdier i en kolonne

Lad os først se på en DataFrame, der in­de­hol­der op­lys­nin­ger om for­skel­li­ge personer og hvor de bor.

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

DataFrame ser således ud:

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

Nu vil vi bruge pandas isin() til at kon­trol­le­re, om byerne i kolonnen City fo­re­kom­mer i en separat liste over byer, vi har oprettet. Når vi har oprettet listen med re­fe­ren­ce­by­er­ne, kører vi funk­tio­nen på DataFrame-kolonnen ‘City’:

# 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

Re­sul­ta­tet er en række boolske værdier, der angiver, om hver by i kolonnen By er til stede på listen cities_to_check_against:

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

Fil­tre­ring af en DataFrame ved hjælp af isin()

Du kan også bruge pandas isin() til at filtrere en DataFrame, så kun de rækker med byer, der er på cities_to_check_against, bevares.

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

Re­sul­ta­tet er en DataFrame, der kun in­de­hol­der de rækker med byer, der også er på listen cities_to_check_against:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Kontrol af flere kolonner i en DataFrame

Til mere komplekse fil­tre­rings­o­pe­ra­tio­ner kan du også bruge pandas isin() med ordbøger. I det følgende eksempel kan du se, hvordan du kan bruge en ordbog til samtidig at kon­trol­le­re flere kolonner i en DataFrame. Først tilføjer vi en kolonne til den op­rin­de­li­ge DataFrame og bruger derefter 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

I dette tilfælde re­tur­ne­rer kaldet isin() en DataFrame med boolske værdier, der angiver, om be­tin­gel­ser­ne er opfyldt i hver kolonne:

Name  City  Age
0  False  False  False
1  False  False   True
2  False   True  False
3  False   True   True
Gå til ho­ved­me­nu­en