Python -funktionen pandas DataFrame.isin() är utformad för att snabbt och effektivt kontrollera om vissa värden finns i en DataFrame. Denna funktion är särskilt användbar för att kontrollera flera värden samtidigt.

Vad är syntaxen för pandas isin()?

Pandas isin() tar en parameter och ser ut så här:

DataFrame.isin(values)
python

Parametern values kan vara en Python-lista, en Python-ordbok eller en annan DataFrame. Den innehåller de värden du vill söka efter i DataFrame.

Tips

Om du arbetar med pandas Series istället för DataFrames kan du använda motsvarande funktion Series.isin().

Hur man använder isin() med DataFrames i pandas

Du kan använda isin() för olika ändamål. Förutom att kontrollera värden kan det också användas för att filtrera DataFrames.

Kontrollera värden i en kolumn

Låt oss först titta på en DataFrame som innehåller information om olika personer och var 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 ut så här:

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

Nu vill vi använda pandas isin() för att kontrollera om städerna i kolumnen City förekommer i en separat lista med städer som vi har skapat. När vi har skapat listan med referensstäderna kör vi funktionen på DataFrame-kolumnen ”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 är en serie booleska värden som anger om varje stad i kolumnen Stad finns med i listan cities_to_check_against:

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

Filtrera en DataFrame med hjälp av isin()

Du kan också använda pandas isin() för att filtrera en DataFrame och behålla endast raderna med städer som finns med i cities_to_check_against.

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

Resultatet är en DataFrame som endast innehåller rader med städer som också finns med i listan cities_to_check_against:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Kontrollera flera kolumner i en DataFrame

För mer komplexa filtreringsoperationer kan du också använda pandas isin() med ordböcker. I följande exempel ser du hur du kan använda en ordbok för att samtidigt kontrollera flera kolumner i en DataFrame. Först lägger vi till en kolumn i den ursprungliga DataFrame och använder sedan 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 det här fallet returnerar anropet isin() en DataFrame med booleska värden, som anger om villkoren har uppfyllts i varje kolumn:

Name  City  Age
0  False  False  False
1  False  False   True
2  False   True  False
3  False   True   True
Gå till huvudmeny