Kaip ieškoti duomenų rėmelių naudojant pandas isin()
Python pandas funkcija DataFrame.isin() yra skirta greitai ir efektyviai patikrinti, ar tam tikros reikšmės egzistuoja DataFrame. Ši funkcija yra ypač naudinga, kai reikia patikrinti kelias reikšmes vienu metu.
Kokia yra pandas isin() sintaksė?
Pandas isin() naudoja vieną parametrą ir atrodo taip:
DataFrame.isin(values)pythonvalues parametras gali būti Python sąrašas, Python žodynas arba kitas DataFrame. Jis apima vertes, kurias norite ieškoti DataFrame.
Jei dirbate su pandas serijomis, o ne su duomenų rėmeliais, galite naudoti lygiavertę 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 stulpelyje tikrinimas
Pirmiausia pažvelkime į duomenų rėmelį, kuriame yra informacija apie skirtingus žmones ir jų gyvenamą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)pythonDuomenų rėmelis atrodo taip:
Name City
0 Amir Nottingham
1 Bella London
2 Charlize Cardiff
3 David HullDabar norime naudoti pandas isin(), kad patikrintume, ar stulpelyje „Miestas“ esantys miestai yra mūsų sukurtame atskirame miestų sąraše. Sukūrę sąrašą su atskaitos miestais, paleisime funkciją stulpelyje „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)pythonRezultatas – tai boolių verčių serija, nurodanti, ar kiekvienas miestas stulpelyje „Miestas“ yra įtrauktas į cities_to_check_against sąrašą:
0 False
1 False
2 True
3 True
Name: City, dtype: boolDuomenų rėmo filtravimas naudojant isin()
Taip pat galite naudoti pandas isin(), kad filtruotumė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)pythonRezultatas 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 HullKelių stulpelių tikrinimas duomenų rėmelio
Sudėtingesnėms filtravimo operacijoms taip pat galite naudoti pandas isin() su žodynais. Toliau pateiktame pavyzdyje pamatysite, kaip žodynu galima vienu metu patikrinti kelis DataFrame stulpelius. Pirmiausia 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ąžinamas DataFrame su Būlio vertėmis, kurios nurodo, ar kiekvienoje skiltyje buvo įvykdytos sąlygos:
Name City Age
0 False False False
1 False False True
2 False True False
3 False True True