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

Ahmed Waheed 30 Januar 2023
  1. df.fillna() Methode zum Ersetzen aller NaN-Werte durch Nullen
  2. df.replace() Methode
Wie ersetzt man alle NaN-Werte durch Nullen in einer Spalte eines Pandas-DataFrame

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