Python pandas funkt­sioon DataFrame.isin() on loodud selleks, et kiiresti ja tõhusalt kont­rol­lida, kas teatud väärtused ek­sis­tee­rivad DataFrame’is. See funkt­sioon on eriti kasulik mitme väärtuse korraga kont­rol­li­miseks.

Mis on pandas isin() süntaks?

Pandas isin() võtab ühe pa­ra­meetri ja näeb välja järgmine:

DataFrame.isin(values)
python

values pa­ra­mee­ter võib olla Python-nimekiri, Python-sõnastik või mõni muu DataFrame. See sisaldab väärtusi, mida soovite DataFrame’is otsida.

Tip

Kui töötate Da­taF­ra­mes’i asemel pandas Series’iga, võite kasutada sa­ma­väär­set funkt­siooni Series.isin().

Kuidas kasutada isin() koos and­me­raami­dega pandas

Võite kasutada isin() eri­ne­va­tel ees­mär­ki­del. Lisaks väärtuste kont­rol­li­misele saab seda kasutada ka DataFrame’ide filt­ree­ri­miseks.

Veeru väärtuste kont­rol­li­mine

Esmalt vaatame DataFrame’i, mis sisaldab teavet erinevate inimeste ja nende elukoha kohta.

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

And­me­st­ruk­tuur näeb välja järgmine:

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

Nüüd tahame kasutada pandas isin(), et kont­rol­lida, kas veerus „City” olevad linnad esinevad meie loodud eraldi linnade ni­me­kir­jas. Kui oleme loonud nimekirja vii­te­lin­na­dega, käivitame funkt­siooni veerus „City” and­me­st­ruk­tuu­ris:

# 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

Tu­le­mu­seks on rida booli väärtusi, mis näitavad, kas iga linn veerus „Linn” on esindatud cities_to_check_against ni­me­kir­jas:

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

And­mes­tiku filt­ree­ri­mine isin() abil

Võite kasutada ka pandas isin(), et filt­ree­rida DataFrame’i, jättes alles ainult need read, kus on linnad, mis esinevad cities_to_check_against ni­me­kir­jas.

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

Tu­le­mu­seks on DataFrame, mis sisaldab ainult neid ridu, kus on linnad, mis on ka cities_to_check_against ni­me­kir­jas:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Mitme veeru kont­rol­li­mine and­mes­ti­kus

Kee­ru­li­se­mate filt­ree­ri­misope­rat­sioo­nide jaoks võite kasutada ka pandas isin() koos sõ­nas­ti­kega. Järgmises näites näete, kuidas sõ­nas­tikku kasutada, et kont­rol­lida sa­ma­aeg­selt mitut DataFrame’i veergu. Esmalt lisame algsele DataFrame’ile veeru ja seejärel kasutame 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

Sellisel juhul tagastab isin() kutsumine DataFrame’i boolesete väär­tus­tega, mis näitavad, kas tin­gi­mu­sed on igas veerus täidetud:

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