Python pandas funkcija DataFrame.isin() ir paredzēta, lai ātri un efektīvi pār­bau­dī­tu, vai noteiktas vērtības pastāv DataFrame. Šī funkcija ir īpaši noderīga, lai vien­lai­kus pār­bau­dī­tu vairākas vērtības.

Kāda ir pandas isin() sintakse?

Pandas isin() pieņem vienu parametru un izskatās šādi:

DataFrame.isin(values)
python

values parametrs var būt Python saraksts, Python vārdnīca vai cits DataFrame. Tas satur vērtības, kuras vēlaties meklēt DataFrame.

Tip

Ja strādājat ar pandas Series, nevis Da­taF­ra­mes, varat izmantot līdzvēr­tī­gu funkciju Series.isin().

Kā lietot isin() ar Da­taF­ra­mes pandas

Jūs varat izmantot isin() dažādiem mērķiem. Papildus vērtību pārbaudei to var izmantot arī Da­taF­ra­mes fil­trē­ša­nai.

Vērtību pārbaude kolonnā

Vispirms aplūkosim DataFrame, kas satur in­for­mā­ci­ju par dažādiem cilvēkiem un to dzī­ves­vie­tām.

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 izskatās šādi:

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

Tagad mēs vēlamies izmantot pandas isin(), lai pār­bau­dī­tu, vai pilsētas kolonnā City ir iekļautas atsevišķā pilsētu sarakstā, kuru esam iz­vei­do­ju­ši. Kad būsim iz­vei­do­ju­ši sarakstu ar atsauces pilsētām, mēs pa­lai­dī­sim funkciju DataFrame kolonnā „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

Rezultāts ir virkne Boole’a vērtību, kas norāda, vai katra pilsēta kolonnā “Pilsēta” ir iekļauta cities_to_check_against sarakstā:

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

Datu rāmja fil­trē­ša­na, iz­man­to­jot isin()

Jūs varat arī izmantot pandas isin(), lai filtrētu DataFrame, sa­gla­bā­jot tikai rindas ar pilsētām, kas ir iekļautas cities_to_check_against sarakstā.

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

Rezultāts ir DataFrame, kas satur tikai rindas ar pilsētām, kuras ir arī cities_to_check_against sarakstā:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Vairāku kolonnu pārbaude DataFrame

Sa­rež­ģī­tā­kām fil­trē­ša­nas darbībām varat izmantot arī pandas isin() ar vārdnīcām. Turp­mā­ka­jā piemērā redzēsiet, kā var izmantot vārdnīcu, lai vien­lai­kus pār­bau­dī­tu vairākas DataFrame kolonnas. Vispirms pie­vie­no­sim kolonu sā­kot­nē­jam DataFrame un pēc tam iz­man­to­sim 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

Šajā gadījumā, izsaucot isin(), tiek atgriezts DataFrame ar Boolean vērtībām, kas norāda, vai katrā kolonnā ir izpildīti no­sa­cī­ju­mi:

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