我有一个数据框,其中的 col 看起来像:
NaN
859.0
NaN
NaN
0.0
NaN
我想用之前的非 NaN 值更改零,并且不要更改其他 NaN,id 得到这个:
NaN
859.0
NaN
NaN
859.0
NaN
我尝试用 fill 替换,但无法获得正确的输出。
欢迎任何帮助!
最佳答案
.ffill().shift()
将向前传播最后一个非空值,然后您可以将 value = 0 的任何行分配给该值:
In [42]: s.ffill().shift()
Out[42]:
0 NaN
1 NaN
2 859.0
3 859.0
4 859.0
5 0.0
dtype: float64
In [43]: s[s==0] = s.ffill().shift()
In [44]: s
Out[44]:
0 NaN
1 859.0
2 NaN
3 NaN
4 859.0
5 NaN
dtype: float64
关于python - 在 Pandas 中,如何用最接近的非纳米值替换零值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59118243/