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)
python

Parametrul 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.

Sfat

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)
python

DataFrame arată astfel:

Name      City
0    Amir    	Nottingham
1    Bella  	London
2    Charlize   Cardiff
3    David    Hull

Acum, 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)
python

Rezultatul 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: bool

Filtrarea 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)
python

Rezultatul 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  		Hull

Verificarea 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
Mergi la meniul principal