Comment remplacer toutes les valeurs NaN par des zéros dans une colonne d'un pandas DataFrame

Ahmed Waheed 30 janvier 2023
  1. Méthode df.fillna() pour remplacer toutes les valeurs NaN par des zéros
  2. Méthode df.replace()
Comment remplacer toutes les valeurs NaN par des zéros dans une colonne d'un pandas DataFrame

Lorsque nous travaillons avec de grands ensembles de données, il y a parfois des valeurs NaN dans l’ensemble de données que vous souhaitez remplacer par une valeur moyenne ou par une valeur appropriée. Par exemple, vous avez une liste de classement des étudiants, et certains étudiants n’ont pas tenté le test de sorte que le système a automatiquement entré NaN au lieu de 0.0. Voici les différentes façons d’accomplir cette tâche.

  1. df.fillna()
  2. df.replace()

Nous utiliserons le même DataFrame dans les sections suivantes comme suit,

import pandas as pd
import numpy as np

data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
print(df)

Ce qui suit est le DataFrame avec NaN en grade.

     name  percentage  grade
0  Oliver          90   88.0
1   Harry          99    NaN
2  George          50   95.0
3    Noah          65    NaN

Méthode df.fillna() pour remplacer toutes les valeurs NaN par des zéros

Remplaçons les valeurs NaN à l’aide de la méthode df.fillna().

import pandas as pd
import numpy as np

data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
df = df.fillna(0)
print(df)

Ce qui suit est la sortie avec NaN remplacée par zéro.

     name  percentage  grade
0  Oliver          90   88.0
1   Harry          99    0.0
2  George          50   95.0
3    Noah          65    0.0

La méthode df.fillna() remplit les valeurs de NaN avec la valeur donnée. Il ne modifie pas les données d’objet mais retourne une nouvelle DataFrame par défaut à moins que le paramètre inplace ne soit défini sur True.

Nous pourrions réécrire les codes ci-dessus avec le paramètre inplace activé pour être True.

import pandas as pd
import numpy as np

data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
df.fillna(0, inplace=True)
print(df)

Méthode df.replace()

Cette méthode fonctionne de la même manière que df.fillna() pour remplacer NaN par 0. df.replace() peut également être utilisé pour remplacer un autre nombre. Jetons un coup d’œil aux codes.

import pandas as pd
import numpy as np

data = {
    "name": ["Oliver", "Harry", "George", "Noah"],
    "percentage": [90, 99, 50, 65],
    "grade": [88, np.nan, 95, np.nan],
}
df = pd.DataFrame(data)
nan_replaced = df.replace(np.nan, 0)
print(nan_replaced)

Ce qui suit sera la sortie.

     name  percentage  grade
0  Oliver          90   88.0
1   Harry          99    0.0
2  George          50   95.0
3    Noah          65    0.0

Article connexe - Pandas NaN