Wie ersetzt man alle NaN-Werte durch Nullen in einer Spalte eines Pandas-DataFrame

  1. df.fillna() Methode zum Ersetzen aller NaN-Werte durch Nullen
  2. df.replace() Methode

Wenn wir mit großen Datensätzen arbeiten, gibt es manchmal NaN-Werte im Datensatz, die Sie durch einen Durchschnittswert oder durch einen geeigneten Wert ersetzen möchten. Sie haben zum Beispiel eine Notenliste von Studenten, und einige Studenten haben das Quiz nicht versucht, so dass das System automatisch NaN statt 0.0 eingegeben hat. Nachstehend sind die verschiedenen Möglichkeiten aufgeführt, diese Aufgabe zu lösen.

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

In den nächsten Abschnitten werden wir denselben DataFrame wie folgt verwenden,

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)

Nachfolgend sehen Sie den DataFrame mit NaN in Grad.

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

df.fillna() Methode zum Ersetzen aller NaN-Werte durch Nullen

Ersetzen wir die NaN Werte mit Hilfe der df.fillna() Methode.

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)

Es folgt die Ausgabe, bei der NaN durch Null ersetzt wird.

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

Die df.fillna() Methode füllt die NaN Werte mit dem gegebenen Wert. Sie ändert nicht die Objektdaten, sondern gibt standardmäßig einen neuen DataFrame zurück, es sei denn, der Parameter inplace ist auf True gesetzt.

Wir könnten die obigen Codes mit dem inplace-Parameter, der auf True gesetzt ist, neu schreiben.

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)

df.replace() Methode

Diese Methode funktioniert genauso wie df.fillna(), um NaN durch 0 zu ersetzen. df.replace() kann auch verwendet werden, um andere Zahlen zu ersetzen. Lassen Sie uns einen Blick auf die Codes werfen.

    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)

Das Folgende wird die Ausgabe sein.

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

Verwandter Artikel - Pandas NaN

  • Pandas lassen Zeilen mit NaN fallen
  • Wie prüft man, ob NaN im Pandas-DataFrame vorhanden ist