je pense que ce comportement est normal, parce que ffill
remplacer NaN
par le remplissage en avant et si aucune valeur en première ligne , puis obtenez NaNs
uniquement à la première valeur non NaN.
Vous pouvez utiliser un autre fillna
pour remplacer NaNs
qui ne peut être remplacé par ffill
:
mdf1 = mdf.ffill().fillna(0)
#same as
#mdf1 = mdf.fillna(method='ffill').fillna(0)
Même problème est avec bfill
(remblayer) et les valeurs de NaN
en dernière ligne, puis il est possible d'ajouter fillna
ou d'une autre méthode:
print (mdf)
Id_Student English History Mathmatic
0 1 66.0 NaN NaN
1 2 NaN 66.0 NaN
2 3 NaN NaN NaN
3 4 55.0 94.0 94.0
4 5 NaN 10.0 NaN
5 6 NaN NaN 20.0
print (mdf.ffill())
Id_Student English History Mathmatic
0 1 66.0 NaN NaN
1 2 66.0 66.0 NaN
2 3 66.0 66.0 NaN
3 4 55.0 94.0 94.0
4 5 55.0 10.0 94.0
5 6 55.0 10.0 20.0
print (mdf.bfill())
Id_Student English History Mathmatic
0 1 66.0 66.0 94.0
1 2 55.0 66.0 94.0
2 3 55.0 94.0 94.0
3 4 55.0 94.0 94.0
4 5 NaN 10.0 20.0
5 6 NaN NaN 20.0
Remplacer par scalaire tous NaN:
mdf1 = mdf.ffill().fillna(0)
print (mdf1)
Id_Student English History Mathmatic
0 1 66.0 0.0 0.0
1 2 66.0 66.0 0.0
2 3 66.0 66.0 0.0
3 4 55.0 94.0 94.0
4 5 55.0 10.0 94.0
5 6 55.0 10.0 20.0
mdf1 = mdf.bfill().fillna(0)
print (mdf1)
Id_Student English History Mathmatic
0 1 66.0 66.0 94.0
1 2 55.0 66.0 94.0
2 3 55.0 94.0 94.0
3 4 55.0 94.0 94.0
4 5 0.0 10.0 20.0
5 6 0.0 0.0 20.0
Remplacer par une autre méthode - si la première ffill
, puis bfill
:
mdf1 = mdf.ffill().bfill()
print (mdf1)
Id_Student English History Mathmatic
0 1 66.0 66.0 94.0
1 2 66.0 66.0 94.0
2 3 66.0 66.0 94.0
3 4 55.0 94.0 94.0
4 5 55.0 10.0 94.0
5 6 55.0 10.0 20.0
mdf1 = mdf.bfill().ffill()
print (mdf1)
Id_Student English History Mathmatic
0 1 66.0 66.0 94.0
1 2 55.0 66.0 94.0
2 3 55.0 94.0 94.0
3 4 55.0 94.0 94.0
4 5 55.0 10.0 20.0
5 6 55.0 10.0 20.0
Toute idée de ce que vous voulez le remplir avec? –
mdf.fillna (method = 'ffill'), Fondamentalement, cette méthode prend la valeur immédiate pour remplir la valeur manquante. Je ne veux pas remplir la valeur manquante par la moyenne ou quelque chose d'autre. wanna use this one.df.fillna (method = 'ffill') –
De toute évidence, 'ffill' ne peut pas remplir quelque chose au début, car il n'y a rien à avancer. Mais vous pouvez utiliser 'bfill' à la place. –