Kako iskati DataFrames z uporabo pandas isin()
Funkcija Python pandas DataFrame.isin() je zasnovana za hitro in učinkovito preverjanje, ali določene vrednosti obstajajo v DataFrame. Ta funkcija je še posebej uporabna za preverjanje več vrednosti hkrati.
Kakšna je sintaksa za pandas isin()?
Pandas isin() sprejme en parameter in izgleda takole:
DataFrame.isin(values)pythonParameter values je lahko seznam Python, slovar Python ali drug DataFrame. Vsebuje vrednosti, ki jih želite iskati v DataFrame.
Če delate s serijami pandas namesto z DataFrames, lahko uporabite enakovredno funkcijo Series.isin().
Kako uporabljati isin() z DataFrames v pandas
isin() lahko uporabite za različne namene. Poleg preverjanja vrednosti jo lahko uporabite tudi za filtriranje podatkovnih okvirov.
Preverjanje vrednosti v stolpcu
Najprej si oglejmo DataFrame, ki vsebuje informacije o različnih ljudeh in kraju, kjer živijo.
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 izgleda takole:
Name City
0 Amir Nottingham
1 Bella London
2 Charlize Cardiff
3 David HullSedaj želimo uporabiti pandas isin(), da preverimo, ali se mesta v stolpcu City pojavljajo na ločenem seznamu mest, ki smo ga ustvarili. Ko bomo ustvarili seznam z referenčnimi mesti, bomo izvedli funkcijo na stolpcu 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)pythonRezultat je niz booleovskih vrednosti, ki kažejo, ali je vsako mesto v stolpcu Mesto prisotno na seznamu cities_to_check_against:
0 False
1 False
2 True
3 True
Name: City, dtype: boolFiltriranje podatkovnega okvira z uporabo isin()
Za filtriranje podatkovnega okvira lahko uporabite tudi pandas isin(), tako da ohranite samo vrstice z mesti, ki so na seznamu cities_to_check_against.
# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)pythonRezultat je DataFrame, ki vsebuje samo vrstice z mesti, ki so tudi na seznamu cities_to_check_against:
Name City
2 Charlize Cardiff
3 David HullPreverjanje več stolpcev v DataFrame
Za bolj zapletene operacije filtriranja lahko uporabite tudi pandas isin() s slovarji. V naslednjem primeru boste videli, kako lahko s slovarjem hkrati preverite več stolpcev DataFrame. Najprej bomo dodali stolpec k izvirnemu DataFrame in nato uporabili 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 tem primeru klic isin() vrne DataFrame z booleanskimi vrednostmi, ki kažejo, ali so bili pogoji izpolnjeni v vsakem stolpcu:
Name City Age
0 False False False
1 False False True
2 False True False
3 False True True