Cum să căutați DataFrames folosind pandas isin()
Funcția Python pandas DataFrame.isin() este concepută pentru a verifica rapid și eficient dacă anumite valori există într-un DataFrame. Această funcție este deosebit de utilă pentru verificarea mai multor valori simultan.
Care este sintaxa pentru pandas isin()?
Pandas isin() acceptă un singur parametru și arată astfel:
DataFrame.isin(values)pythonParametrul values poate fi o listă Python, un dicționar Python sau un alt DataFrame. Acesta conține valorile pe care doriți să le căutați în DataFrame.
Dacă lucrați cu pandas Series în loc de DataFrames, puteți utiliza funcția echivalentă Series.isin().
Cum se utilizează isin() cu DataFrames în pandas
Puteți utiliza isin() în diferite scopuri. Pe lângă verificarea valorilor, poate fi utilizat și pentru filtrarea DataFrames.
Verificarea valorilor dintr-o coloană
Mai întâi, să aruncăm o privire asupra unui DataFrame care conține informații despre diferite persoane și locul în care locuiesc.
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 arată astfel:
Name City
0 Amir Nottingham
1 Bella London
2 Charlize Cardiff
3 David HullAcum, vrem să folosim pandas isin() pentru a verifica dacă orașele din coloana City apar într-o listă separată de orașe pe care am creat-o. Odată ce am creat lista cu orașele de referință, vom rula funcția pe coloana 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)pythonRezultatul este o serie de valori booleene care indică dacă fiecare oraș din coloana Oraș este prezent în lista cities_to_check_against:
0 False
1 False
2 True
3 True
Name: City, dtype: boolFiltrarea unui DataFrame folosind isin()
De asemenea, puteți utiliza pandas isin() pentru a filtra un DataFrame, păstrând doar rândurile cu orașele care apar în lista cities_to_check_against.
# Filtering a DataFrame using isin()
filtered_df = df[df['City'].isin(cities_to_check_against)]
print(filtered_df)pythonRezultatul este un DataFrame care conține numai rândurile cu orașele care se află și în lista cities_to_check_against:
Name City
2 Charlize Cardiff
3 David HullVerificarea mai multor coloane într-un DataFrame
Pentru operațiuni de filtrare mai complexe, puteți utiliza și pandas isin() cu dicționare. În exemplul următor, veți vedea cum puteți utiliza un dicționar pentru a verifica simultan mai multe coloane dintr-un DataFrame. Mai întâi, vom adăuga o coloană la DataFrame-ul original și apoi vom utiliza 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În acest caz, apelarea isin() returnează un DataFrame cu valori booleene, care indică dacă condițiile au fost îndeplinite în fiecare coloană:
Name City Age
0 False False False
1 False False True
2 False True False
3 False True True