Python pandas funkcija DataFrame.isin() yra skirta greitai ir efek­ty­viai pa­tik­rin­ti, ar tam tikros reikšmės eg­zis­tuo­ja DataFrame. Ši funkcija yra ypač naudinga, kai reikia pa­tik­rin­ti kelias reikšmes vienu metu.

Kokia yra pandas isin() sintaksė?

Pandas isin() naudoja vieną parametrą ir atrodo taip:

DataFrame.isin(values)
python

values pa­ra­met­ras gali būti Python sąrašas, Python žodynas arba kitas DataFrame. Jis apima vertes, kurias norite ieškoti DataFrame.

Tip

Jei dirbate su pandas serijomis, o ne su duomenų rėmeliais, galite naudoti ly­gia­ver­tę funkciją Series.isin().

Kaip naudoti isin() su duomenų rėmeliais pandas

isin() galite naudoti įvairiais tikslais. Be verčių tikrinimo, jį taip pat galima naudoti duomenų rėmams filtruoti.

Vertės stul­pe­ly­je tik­ri­ni­mas

Pir­miau­sia pa­žvel­ki­me į duomenų rėmelį, kuriame yra in­for­ma­ci­ja apie skir­tin­gus žmones ir jų gy­ve­na­mą­sias vietas.

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

Duomenų rėmelis atrodo taip:

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

Dabar norime naudoti pandas isin(), kad pa­tik­rin­tu­me, ar stul­pe­ly­je „Miestas“ esantys miestai yra mūsų sukurtame atskirame miestų sąraše. Sukūrę sąrašą su atskaitos miestais, paleisime funkciją stul­pe­ly­je „Miestas“ duomenų rėmoje:

# 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­zul­ta­tas – tai boolių verčių serija, nurodanti, ar kiek­vie­nas miestas stul­pe­ly­je „Miestas“ yra įtrauktas į cities_to_check_against sąrašą:

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

Duomenų rėmo fil­t­ra­vi­mas naudojant isin()

Taip pat galite naudoti pandas isin(), kad fil­t­ruo­tu­mė­te DataFrame, paliekant tik eilutes su miestais, kurie yra cities_to_check_against sąraše.

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

Re­zul­ta­tas yra DataFrame, kuriame yra tik eilutės su miestais, kurie taip pat yra cities_to_check_against sąraše:

Name    	City
2  Charlize  	Cardiff
3  David  		Hull

Kelių stulpelių tik­ri­ni­mas duomenų rėmelio

Su­dė­tin­ges­nėms fil­t­ra­vi­mo ope­ra­ci­joms taip pat galite naudoti pandas isin() su žodynais. Toliau pa­teik­ta­me pavyzdyje pa­ma­ty­si­te, kaip žodynu galima vienu metu pa­tik­rin­ti kelis DataFrame stul­pe­lius. Pir­miau­sia pridėsime stulpelį prie pradinio DataFrame, tada naudodami 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

Šiuo atveju, iškvietus isin(), grą­ži­na­mas DataFrame su Būlio vertėmis, kurios nurodo, ar kiek­vie­no­je skiltyje buvo įvykdytos sąlygos:

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