Funkcija Python pandas DataFrame.isin() je zasnovana za hitro in učin­ko­vi­to pre­ver­ja­nje, ali določene vrednosti obstajajo v DataFrame. Ta funkcija je še posebej uporabna za pre­ver­ja­nje več vrednosti hkrati.

Kakšna je sintaksa za pandas isin()?

Pandas isin() sprejme en parameter in izgleda takole:

DataFrame.isin(values)
python

Parameter values je lahko seznam Python, slovar Python ali drug DataFrame. Vsebuje vrednosti, ki jih želite iskati v DataFrame.

Tip

Če delate s serijami pandas namesto z Da­ta­Fra­mes, lahko uporabite ena­ko­vre­dno funkcijo Series.isin().

Kako upo­ra­blja­ti isin() z Da­ta­Fra­mes v pandas

isin() lahko uporabite za različne namene. Poleg pre­ver­ja­nja vrednosti jo lahko uporabite tudi za fil­tri­ra­nje po­dat­kov­nih okvirov.

Pre­ver­ja­nje vrednosti v stolpcu

Najprej si oglejmo DataFrame, ki vsebuje in­for­ma­ci­je o različnih ljudeh in kraju, kjer živijo.

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 izgleda takole:

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

Sedaj želimo uporabiti pandas isin(), da preverimo, ali se mesta v stolpcu City po­ja­vlja­jo na ločenem seznamu mest, ki smo ga ustvarili. Ko bomo ustvarili seznam z re­fe­renč­ni­mi mesti, bomo izvedli funkcijo na stolpcu DataFrame „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

Rezultat je niz boo­le­o­vskih vrednosti, ki kažejo, ali je vsako mesto v stolpcu Mesto prisotno na seznamu cities_to_check_against:

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

Fil­tri­ra­nje po­dat­kov­ne­ga okvira z uporabo isin()

Za fil­tri­ra­nje po­dat­kov­ne­ga okvira lahko uporabite tudi pandas isin(), tako da ohranite samo vrstice z mesti, ki so na seznamu cities_to_check_against.

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

Rezultat je DataFrame, ki vsebuje samo vrstice z mesti, ki so tudi na seznamu cities_to_check_against:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Pre­ver­ja­nje več stolpcev v DataFrame

Za bolj zapletene operacije fil­tri­ra­nja lahko uporabite tudi pandas isin() s slovarji. V na­sle­dnjem primeru boste videli, kako lahko s slovarjem hkrati preverite več stolpcev DataFrame. Najprej bomo dodali stolpec k izvirnemu DataFrame in nato uporabili 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

V tem primeru klic isin() vrne DataFrame z boo­le­an­ski­mi vre­dnost­mi, ki kažejo, ali so bili pogoji iz­pol­nje­ni v vsakem stolpcu:

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