Python pandas- funksjonen DataFrame.isin() er utviklet for å raskt og effektivt sjekke om visse verdier finnes i en DataFrame. Denne funksjonen er spesielt nyttig for å sjekke flere verdier samtidig.

Hva er syntaksen for pandas isin()?

Pandas isin() tar én parameter og ser slik ut:

DataFrame.isin(values)
python

Parameteren values kan være en Python-liste, en Python-ordbok eller en annen DataFrame. Den inneholder verdiene du ønsker å søke etter i DataFrame.

Tip

Hvis du arbeider med pandas Series i stedet for DataFrames, kan du bruke den tilsvarende funksjonen Series.isin().

Hvordan bruke isin() med DataFrames i pandas

Du kan bruke isin() til forskjellige formål. I tillegg til å sjekke verdier, kan det også brukes til å filtrere DataFrames.

Sjekke verdier i en kolonne

Først skal vi se på en DataFrame som inneholder informasjon om forskjellige 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 slik ut:

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

Nå vil vi bruke pandas isin() til å sjekke om byene i kolonnen City finnes i en egen liste over byer som vi har opprettet. Når vi har opprettet listen med referansebyene, kjører vi funksjonen 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

Resultatet er en serie med boolske verdier som angir om hver by i kolonnen By er til stede i listen cities_to_check_against:

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

Filtrering av en DataFrame ved hjelp av isin()

Du kan også bruke pandas isin() til å filtrere en DataFrame, slik at du bare beholder radene med byer som finnes på listen cities_to_check_against.

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

Resultatet er en DataFrame som bare inneholder rader med byer som også er på listen cities_to_check_against:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Kontrollere flere kolonner i en DataFrame

For mer komplekse filtreringsoperasjoner kan du også bruke pandas isin() med ordbøker. I det følgende eksemplet vil du se hvordan du kan bruke en ordbok til å sjekke flere kolonner i en DataFrame samtidig. Først legger vi til en kolonne i den opprinnelige DataFrame og bruker deretter 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 tilfellet returnerer isin() en DataFrame med boolske verdier, som angir om betingelsene er oppfylt i hver kolonne:

Name  City  Age
0  False  False  False
1  False  False   True
2  False   True  False
3  False   True   True
Go to Main Menu