# Nettoyer des données avec Pandas dropna()

La fonction Python Pandas `DataFrame.dropna()` sert à supprimer d’un DataFrame toutes les lignes ou colonnes qui contiennent des valeurs manquantes (NaN). Elle joue donc un rôle crucial, en particulier dans la **préparation et le nettoyage des données**.

## Syntaxe de Pandas `dropna()`

La fonction `dropna()` prend **jusqu’à cinq paramètres**. La syntaxe de base est très simple :

```python
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
```

### Paramètres pertinents

Le comportement de la fonction Pandas `DataFrame.dropna()` peut être influencé par les **paramètres passés**. Les paramètres les plus importants sont résumés dans le tableau suivant :

<table>
  <thead>
    <tr>
      <th><strong>Paramètres</strong></th>
      <th><strong>Description</strong></th>
      <th><strong>Valeur par défaut</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Détermine si les lignes (0 ou `index`) ou les colonnes (1 ou `columns`) sont supprimées</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`how`</td>
      <td>Indique si toutes les valeurs (`all`) ou seulement certaines (`any`) doivent être NaN</td>
      <td>`any`</td>
    </tr>
    <tr>
      <td>`thresh`</td>
      <td>Indique le nombre minimum de valeurs non-NaN qu’une ligne ou une colonne doit avoir pour ne pas être supprimée</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`subset`</td>
      <td>Détermine quelles lignes ou colonnes doivent être considérées ; si `None`, toutes les colonnes sont prises en compte</td>
      <td>`None`</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Détermine si l’opération est effectuée dans le DataFrame d’origine</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`ignore_index`</td>
      <td>Si `True`, les axes restants seront étiquetés de 0 à n-1</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## Application de Pandas `DataFrame.dropna()`

Pandas `dropna()` est nécessaire pour nettoyer les données avant une analyse, en supprimant les lignes ou les colonnes avec des valeurs manquantes. Cela aide à **éviter les biais** dans les analyses statistiques. Cette fonction **facilite également la création de graphiques** et de rapports, car les valeurs manquantes peuvent dans certains cas entraîner des représentations erronées.

### Suppression des lignes avec des valeurs manquantes

Dans l’exemple de code suivant, nous considérons un DataFrame qui contient des valeurs NaN :

```python
import pandas as pd
import numpy as np
# Création d'un DataFrame avec des données d'exemple
données = {
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(données)
print(df)
```

Le DataFrame se présente comme suit :

```none
A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12
```

Dans l’étape suivante, nous appliquons la fonction Pandas `dropna()` :

```python
## Suppression de toutes les lignes contenant au moins une valeur NaN
df_cleaned = df.dropna()
print(df_cleaned)
```

L’exécution du code donne le résultat suivant :

```none
A    B   C
0  1.0  5.0   9
3  4.0  8.0  12
```

Seules les lignes d’index 0 et 3 du DataFrame sont encore présentes, car toutes les autres lignes contenaient des valeurs NaN.

### Suppression des colonnes avec des valeurs manquantes

La suppression des colonnes avec des valeurs manquantes fonctionne de la même manière. Pour cela, il suffit de définir le paramètre `axis` de la fonction à 1 :

```python
## Suppression de toutes les colonnes contenant au moins une valeur NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
```

Dans le résultat, on voit qu’il ne reste que la colonne « C », car elle est la seule à ne pas contenir de valeur NaN :

```none
C
0   9
1  10
2  11
3  12
```

### Application de `thresh`

Si vous ne voulez supprimer que les lignes qui ont moins de deux valeurs non-NaN, vous pouvez utiliser le paramètre `thresh` :

```python
## Suppression de toutes les lignes contenant moins de deux valeurs non-NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)
```

Après l’exécution du code, la première ligne est désormais présente, car elle contient deux valeurs non-NaN :

```none
A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
```

### Utilisation de `subset`

Le paramètre `subset` est utilisé pour spécifier les colonnes spécifiques dans lesquelles les valeurs manquantes doivent être recherchées. Seules les lignes qui ont des valeurs manquantes dans les colonnes spécifiées seront supprimées.

```python
## Suppression de toutes les lignes contenant un NaN dans la colonne « A » :
df_subset = df.dropna(subset=['A'])
print(df_subset)
```

On remarque que seule la ligne d’index 2 a été supprimée, car elle contenait une valeur NaN dans la colonne « A ». Les autres lignes sont conservées, même si elles contiennent des NaN dans d’autres colonnes.

```none
A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
```


This is a markdown version of: [https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe-dropna/](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/python-pandas-dataframe-dropna/) for AI/LLM consumption.