# Funzione isin() in Pandas per la ricerca nei DataFrame

La funzione `DataFrame.isin()` in [Pandas per Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/pandas-di-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.

## 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ì:

```python
DataFrame.isin(values)
```

Il parametro `values` può essere una **[lista di Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/liste-in-python/), un [dizionario](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dizionari-in-python/) 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.

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

Il DataFrame si presenta così:

```none
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à”:

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

Il risultato è una serie di valori booleani che indicano se la città specificata è presente nella lista `cities_to_check`:

```none
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`.

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

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

```none
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()`:

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

La chiamata della funzione `isin()` restituisce in questo caso un DataFrame con valori booleani che indicano se le condizioni nelle rispettive colonne sono soddisfatte:

```none
Nome  Città  Età
0  False  False  False
1  False  False  True
2  False   True  False
3  False   True  True
```


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dataframe-isin-in-pandas-per-python/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dataframe-isin-in-pandas-per-python/) for AI/LLM consumption.