Funzione isin() in Pandas per la ricerca nei DataFrame
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.
- 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)
pythonIl parametro values
può essere una lista di Python, un dizionario o un altro DataFrame e contiene i valori da cercare nel DataFrame originale.
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)
pythonIl 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)
pythonIl 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)
pythonIl 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)
pythonLa 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