Hogyan lehet keresni a DataFrames-ben a pandas isin() segítségével?
A Python pandas DataFrame.isin() függvény arra szolgál, hogy gyorsan és hatékonyan ellenőrizze, hogy bizonyos értékek léteznek-e egy DataFrame-ben. Ez a függvény különösen hasznos több érték egyszerre történő ellenőrzéséhez.
Mi a pandas isin() szintaxisa?
A Pandas isin() egy paramétert fogad el, és így néz ki:
DataFrame.isin(values)pythonA values paraméter lehet Python lista, Python szótár vagy egy másik DataFrame. Ez tartalmazza azokat az értékeket, amelyeket a DataFrame-ben keresni szeretne.
Ha DataFrames helyett pandas Series-szel dolgozol, akkor a megfelelő funkciót használhatod Series.isin().
Hogyan használjuk isin() a pandas DataFrames-ben?
isin() különböző célokra használhatja. Az értékek ellenőrzése mellett a DataFrames szűrésére is használható.
Értékek ellenőrzése egy oszlopban
Először nézzünk meg egy DataFrame-et, amely különböző emberekről és lakóhelyükről tartalmaz információkat.
import pandas as pd
# Creating a DataFrame
data = {
'Name': ['Amir', 'Bella', 'Charlize', 'David'],
'City': ['Nottingham', 'London', 'Cardiff', 'Hull']
}
df = pd.DataFrame(data)
print(df)pythonA DataFrame így néz ki:
Name City
0 Amir Nottingham
1 Bella London
2 Charlize Cardiff
3 David HullMost a pandas isin() segítségével szeretnénk ellenőrizni, hogy a City oszlopban szereplő városok szerepelnek-e az általunk létrehozott külön városlistában. Miután létrehoztuk a referencia városok listáját, futtatjuk a függvényt a DataFrame oszlop „City” mezőjén:
# 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)pythonAz eredmény egy sor logikai érték, amely jelzi, hogy a City oszlopban szereplő városok szerepelnek-e a cities_to_check_against listában:
0 False
1 False
2 True
3 True
Name: City, dtype: boolAdatkeret szűrése a isin() segítségével
A pandas isin() segítségével szűrheted a DataFrame-et, és csak azokat a sorokat tarthatod meg, amelyek a cities_to_check_against listában szereplő városokat tartalmazzák.
# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)pythonAz eredmény egy DataFrame, amely csak azokat a sorokat tartalmazza, amelyek városai szerepelnek a cities_to_check_against listában is:
Name City
2 Charlize Cardiff
3 David HullTöbb oszlop ellenőrzése egy DataFrame-ben
Bonyolultabb szűrési műveletekhez a pandas isin() szótárakkal is használható. A következő példában láthatja, hogyan lehet szótárral egyszerre több oszlopot ellenőrizni egy DataFrame-ben. Először hozzáadunk egy oszlopot az eredeti DataFrame-hez, majd isin() használjuk:
# 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)pythonEbben az esetben a isin() hívása egy DataFrame-et ad vissza, amely boole-értékeket tartalmaz, amelyek jelzik, hogy az egyes oszlopokban teljesültek-e a feltételek:
Name City Age
0 False False False
1 False False True
2 False True False
3 False True True