Python -funk­tio­nen pandas DataFrame.isin() är utformad för att snabbt och effektivt kon­trol­le­ra om vissa värden finns i en DataFrame. Denna funktion är särskilt användbar för att kon­trol­le­ra 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

Pa­ra­me­tern values kan vara en Python-lista, en Python-ordbok eller en annan DataFrame. Den in­ne­hål­ler de värden du vill söka efter i DataFrame.

Tips

Om du arbetar med pandas Series istället för Da­taFrames kan du använda mot­sva­ran­de funktion Series.isin().

Hur man använder isin() med Da­taFrames i pandas

Du kan använda isin() för olika ändamål. Förutom att kon­trol­le­ra värden kan det också användas för att filtrera Da­taFrames.

Kon­trol­le­ra värden i en kolumn

Låt oss först titta på en DataFrame som in­ne­hål­ler in­for­ma­tion 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 kon­trol­le­ra om städerna i kolumnen City fö­re­kom­mer i en separat lista med städer som vi har skapat. När vi har skapat listan med re­fe­rens­stä­der­na kör vi funk­tio­nen 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

Re­sul­ta­tet ä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

Re­sul­ta­tet är en DataFrame som endast in­ne­hål­ler rader med städer som också finns med i listan cities_to_check_against:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Kon­trol­le­ra flera kolumner i en DataFrame

För mer komplexa fil­tre­rings­o­pe­ra­tio­ner 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 kon­trol­le­ra flera kolumner i en DataFrame. Först lägger vi till en kolumn i den ur­sprung­li­ga 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 re­tur­ne­rar 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