La funzione DataFrame.isin() in Pandas per Python serve a controllare in modo rapido ed efficiente se determinati valori sono presenti in un DataFrame. La funzione è particolarmente utile se si desidera controllare più valori contemporaneamente.

Il tuo web hosting come mai prima d'ora
  • Certificato SSL e protezione DDoS
  • Velocità, flessibilità e scalabilità
  • Dominio e consulente personale
  • 1 anno gratis del gestionale di fatturazione elettronica FlexTax

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 dizionario 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, è disponibile una funzione del tutto equivalente chiamata Series.isin().

Utilizzo della funzione isin()

Le possibilità di applicazione di isin() sono molteplici: oltre a verificare 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 esaminiamo un DataFrame contenente informazioni 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 utilizziamo isin() in Pandas per verificare se determinate città sono presenti nella colonna corrispondente. A tal fine creiamo un elenco di città da controllare 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à specificata è presente nella lista cities_to_check:

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

Filtraggio di DataFrame in base a isin()

È possibile utilizzare isin() in Pandas anche per filtrare il DataFrame e conservare solo le righe che contengono 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 operazioni di filtraggio più complesse è possibile utilizzare isin() di Pandas anche con i dizionari. L’esempio seguente mostra come sfruttare un dizionario per controllare contemporaneamente più colonne di un DataFrame. A tal fine ampliamo il DataFrame originale aggiungendo una colonna e utilizziamo 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() restituisce in questo caso un DataFrame con valori booleani che indicano se le condizioni nelle rispettive colonne sono soddisfatte:

Nome  Città  Età
0  False  False  False
1  False  False  True
2  False   True  False
3  False   True  True
Hai trovato questo articolo utile?
Vai al menu principale