# La funzione isna() in Pandas: rilevamento dei valori mancanti

La funzione `DataFrame.isna()` di [Pandas per Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/pandas-di-python/) ti aiuta a **identificare i dati mancanti (`NaN` o `None`) all’interno di un DataFrame**. Questa funzionalità può essere utile per stabilire se è possibile eseguire le analisi programmate o se i dati devono essere prima ripuliti.

## La sintassi di `isna()` in Pandas

La funzione `isna()` in Pandas **non accetta nessun parametro** e la sua sintassi è quindi molto semplice:

```python
DataFrame.isna()
```

## Utilizzo della funzione `isna()`

La funzione `isna()` di Pandas si applica su un DataFrame per **generare un nuovo DataFrame con valori booleani**. Se un valore manca nel DataFrame originale oppure se un valore è `NaN` o `None`, la posizione corrispondente nel risultato viene occupata dal valore `True`. In caso contrario, `isna()` restituisce il valore `False` nella posizione in questione.

N.B. Se desideri non soltanto rilevare la presenza o meno di valori `NaN` o `None`, ma anche rimuoverli, puoi prendere in considerazione la [funzione `dropna()` di Pandas](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dataframe-dropna-in-pandas-per-python/). Se invece vuoi sostituire sistematicamente i valori, puoi ricorrere alla [funzione `fillna()`](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/dataframe-fillna-in-pandas-per-python/).

### Identificazione di valori mancanti in un DataFrame

Gli esempi seguenti utilizzano un DataFrame contenente informazioni su varie persone, ma alcuni dati sono mancanti o hanno il valore `None`:

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

Il DataFrame si presenta così:

```none
Nome   Età        Città
0  Alice   25.0     New York
1    Bob    NaN  Los Angeles
2   None   35.0      Chicago
3  David   40.0         None
```

Per individuare esattamente i valori mancanti è possibile richiamare la funzione `isna()` sul DataFrame.

```python
# Utilizzo di isna() in Pandas
missing_values = df.isna()
print(missing_values)
```

La chiamata della funzione restituisce un nuovo DataFrame in cui un valore è sostituito da `True` se manca il valore originale e con `False` se il valore è presente. Il risultato si presenta quindi così:

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

### Conteggio dei valori mancanti per ogni colonna

Può essere utile sapere quanti valori mancano in ciascuna colonna per decidere come gestire i dati mancanti. A tal fine è possibile utilizzare `isna()` in combinazione con la funzione `sum()` di Python.

```python
# Conteggio dei valori mancanti per ogni colonna
missing_count = df.isna().sum()
print(missing_count)
```

Il risultato mostra quanti valori mancano in ciascuna colonna:

```none
Nome     1
Età      1
Città    1
dtype: int64
```


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