La funzione DataFrame.isin() in Pandas per Python serve a con­trol­la­re in modo rapido ed ef­fi­cien­te se de­ter­mi­na­ti valori sono presenti in un DataFrame. La funzione è par­ti­co­lar­men­te utile se si desidera con­trol­la­re più valori con­tem­po­ra­nea­men­te.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

La sintassi della funzione isin() in Pandas

La funzione isin() in Pandas accetta solo un parametro. Pertanto la sintassi di base della funzione è molto semplice e si presenta così:

DataFrame.isin(values)
python

Il parametro values può essere una lista di Python, un di­zio­na­rio o un altro DataFrame e contiene i valori da cercare nel DataFrame originale.

Consiglio

Se in Pandas non lavori con i DataFrame ma con le serie, è di­spo­ni­bi­le una funzione del tutto equi­va­len­te chiamata Series.isin().

Utilizzo della funzione isin()

Le pos­si­bi­li­tà di ap­pli­ca­zio­ne di isin() sono mol­te­pli­ci: oltre a ve­ri­fi­ca­re l’esistenza di valori, con questa funzione puoi anche applicare filtri sul tuo DataFrame.

Verifica della presenza di valori in una colonna

Nelle parti seguenti esa­mi­nia­mo un DataFrame con­te­nen­te in­for­ma­zio­ni su diverse persone e sui loro luoghi di residenza.

import pandas as pd
# Creazione di un DataFrame di esempio
data = {
    'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
    'Città': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
print(df)
python

Il DataFrame si presenta così:

Nome      Città
0    Alice     New York
1    Bob  Los Angeles
2  Charlie    Chicago
3    David    Houston

A questo punto uti­liz­zia­mo isin() in Pandas per ve­ri­fi­ca­re se de­ter­mi­na­te città sono presenti nella colonna cor­ri­spon­den­te. A tal fine creiamo un elenco di città da con­trol­la­re ed eseguiamo quindi la funzione sulla colonna DataFrame di nome “Città”:

# Le città da controllare
cities_to_check = ['Chicago', 'Houston', 'Miami']
# Applicazione del metodo isin()
result = df['Città'].isin(cities_to_check)
print(result)
python

Il risultato è una serie di valori booleani che indicano se la città spe­ci­fi­ca­ta è presente nella lista cities_to_check:

0    False
1    False
2     True
3     True
Nome: Città, dtype: bool

Fil­trag­gio di DataFrame in base a isin()

È possibile uti­liz­za­re isin() in Pandas anche per filtrare il DataFrame e con­ser­va­re solo le righe che con­ten­go­no le città indicate in cities_to_check.

# Filtraggio di DataFrame in base a isin()
filtered_df = df[df['Città'].isin(cities_to_check)]
print(filtered_df)
python

Il risultato è un DataFrame in cui rimangono solo le righe con le città presenti anche nella lista di confronto cities_to_check:

Nome    Città
2  Charlie  Chicago
3    David  Houston

Verifica di più colonne

Per eseguire ope­ra­zio­ni di fil­trag­gio più complesse è possibile uti­liz­za­re isin() di Pandas anche con i dizionari. L’esempio seguente mostra come sfruttare un di­zio­na­rio per con­trol­la­re con­tem­po­ra­nea­men­te più colonne di un DataFrame. A tal fine ampliamo il DataFrame originale ag­giun­gen­do una colonna e uti­liz­zia­mo isin():

# Creazione di un DataFrame di esempio
data = {
    'Nome': ['Alice', 'Bob', 'Charlie', 'David'],
    'Città': ['New York', 'Los Angeles', 'Chicago', 'Houston'],
    'Età': [25, 30, 35, 40]
}
df = pd.DataFrame(data)
# Dizionario con i valori da controllare
values_to_check = {
    'Città': ['Chicago', 'Houston'],
    'Età': [30, 40]
}
# Applicazione di isin() con un dizionario
result = df.isin(values_to_check)
print(result)
python

La chiamata della funzione isin() re­sti­tui­sce in questo caso un DataFrame con valori booleani che indicano se le con­di­zio­ni nelle ri­spet­ti­ve colonne sono sod­di­sfat­te:

Nome  Città  Età
0  False  False  False
1  False  False  True
2  False   True  False
3  False   True  True
Vai al menu prin­ci­pa­le