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.
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