Pandas - Nettoyage des cellules vides


Cellules vides

Les cellules vides peuvent potentiellement vous donner un résultat erroné lorsque vous analysez des données.


Supprimer des lignes

Une façon de traiter les cellules vides consiste à supprimer les lignes contenant des cellules vides.

C'est généralement correct, car les ensembles de données peuvent être très volumineux et la suppression de quelques lignes n'aura pas un grand impact sur le résultat.

Exemple

Renvoie un nouveau bloc de données sans cellules vides :

import pandas as pd

df = pd.read_csv('data.csv')

new_df = df.dropna()

print(new_df.to_string())

Dans nos exemples de nettoyage, nous utiliserons un fichier CSV appelé « dirtydata.csv ».

Télécharger dirtydata.csv . ou Ouvrez dirtydata.csv

Remarque : Par défaut, la dropna()méthode renvoie un nouveau DataFrame et ne modifiera pas l'original.

Si vous souhaitez modifier le DataFrame d'origine, utilisez l' inplace = Trueargument :

Exemple

Supprimez toutes les lignes contenant des valeurs NULL :

import pandas as pd

df = pd.read_csv('data.csv')

df.dropna(inplace = True)

print(df.to_string())

Remarque : Maintenant, le dropna(inplace = True)ne renverra PAS un nouveau DataFrame, mais il supprimera toutes les lignes contenant des valeurs NULL du DataFrame d'origine.


Remplacer les valeurs vides

Une autre façon de gérer les cellules vides consiste à insérer une nouvelle valeur à la place.

De cette façon, vous n'avez pas à supprimer des lignes entières simplement à cause de certaines cellules vides.

La fillna()méthode nous permet de remplacer les cellules vides par une valeur :

Exemple

Remplacez les valeurs NULL par le nombre 130 :

import pandas as pd

df = pd.read_csv('data.csv')

df.fillna(130, inplace = True)

Remplacer uniquement pour les colonnes spécifiées

L'exemple ci-dessus remplace toutes les cellules vides dans l'ensemble du bloc de données.

Pour remplacer uniquement les valeurs vides d'une colonne, spécifiez le nom de la colonne pour le DataFrame :

Exemple

Remplacez les valeurs NULL dans les colonnes "Calories" par le nombre 130 :

import pandas as pd

df = pd.read_csv('data.csv')

df["Calories"].fillna(130, inplace = True)

w3schools CERTIFIED . 2021

Obtenir une certification!

Complétez les modules Pandas, faites les exercices, passez l'examen et vous deviendrez certifié w3schools !

10 $ S'INSCRIRE

Remplacer en utilisant la moyenne, la médiane ou le mode

Une manière courante de remplacer les cellules vides consiste à calculer la valeur moyenne, médiane ou modale de la colonne.

Pandas utilise les méthodes mean() median()et mode()pour calculer les valeurs respectives d'une colonne spécifiée :

Exemple

Calculez la MOYENNE et remplacez toutes les valeurs vides par celle-ci :

import pandas as pd

df = pd.read_csv('data.csv')

x = df["Calories"].mean()

df["Calories"].fillna(x, inplace = True)

Moyenne = la valeur moyenne (la somme de toutes les valeurs divisée par le nombre de valeurs).

Exemple

Calculez la MÉDIANE et remplacez toutes les valeurs vides par celle-ci :

import pandas as pd

df = pd.read_csv('data.csv')

x = df["Calories"].median()

df["Calories"].fillna(x, inplace = True)

Médiane = la valeur du milieu, après avoir trié toutes les valeurs par ordre croissant.

Exemple

Calculez le MODE et remplacez toutes les valeurs vides par :

import pandas as pd

df = pd.read_csv('data.csv')

x = df["Calories"].mode()[0]

df["Calories"].fillna(x, inplace = True)

Mode = la valeur qui apparaît le plus fréquemment.