Ako vyhľadávať DataFrames pomocou pandas isin()
Funkcia Python pandas DataFrame.isin() je navrhnutá tak, aby rýchlo a efektívne skontrolovala, či určité hodnoty existujú v DataFrame. Táto funkcia je obzvlášť užitočná na kontrolu viacerých hodnôt naraz.
Aká je syntax pre pandas isin()?
Pandas isin() prijíma jeden parameter a vyzerá takto:
DataFrame.isin(values)pythonParameter values môže byť zoznam Python, slovník Python alebo iný DataFrame. Obsahuje hodnoty, ktoré chcete vyhľadávať v DataFrame.
Ak pracujete s pandas Series namiesto DataFrames, môžete použiť ekvivalentnú funkciu Series.isin().
Ako používať isin() s DataFrames v pandas
isin() môžete použiť na rôzne účely. Okrem kontroly hodnôt ho môžete použiť aj na filtrovanie dátových rámcov.
Kontrola hodnôt v stĺpci
Najskôr sa pozrime na DataFrame, ktorý obsahuje informácie o rôznych ľuďoch a mieste, kde žijú.
import pandas as pd
# Creating a DataFrame
data = {
'Name': ['Amir', 'Bella', 'Charlize', 'David'],
'City': ['Nottingham', 'London', 'Cardiff', 'Hull']
}
df = pd.DataFrame(data)
print(df)pythonDataFrame vyzerá takto:
Name City
0 Amir Nottingham
1 Bella London
2 Charlize Cardiff
3 David HullTeraz chceme pomocou pandas isin() skontrolovať, či sa mestá v stĺpci City nachádzajú v samostatnom zozname miest, ktorý sme vytvorili. Akonáhle vytvoríme zoznam s referenčnými mestami, spustíme funkciu na stĺpci DataFrame „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)pythonVýsledkom je séria boolovských hodnôt, ktoré udávajú, či je každé mesto v stĺpci Mesto prítomné v zozname cities_to_check_against:
0 False
1 False
2 True
3 True
Name: City, dtype: boolFiltrovanie dátového rámca pomocou isin()
Na filtrovanie DataFrame môžete použiť aj pandas isin(), pričom zachováte len riadky s mestami, ktoré sa nachádzajú v zozname cities_to_check_against.
# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)pythonVýsledkom je DataFrame, ktorý obsahuje iba riadky s mestami, ktoré sú tiež v zozname cities_to_check_against:
Name City
2 Charlize Cardiff
3 David HullKontrola viacerých stĺpcov v DataFrame
Pre zložitejšie operácie filtrovania môžete použiť aj pandas isin() so slovníkmi. V nasledujúcom príklade uvidíte, ako môžete pomocou slovníka súčasne skontrolovať viacero stĺpcov DataFrame. Najskôr pridáme stĺpec do pôvodného DataFrame a potom použijeme 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)pythonV tomto prípade volanie isin() vráti DataFrame s boolovskými hodnotami, ktoré označujú, či boli podmienky splnené v každom stĺpci:
Name City Age
0 False False False
1 False False True
2 False True False
3 False True True