python - 在 Pandas 中,如何用最接近的非纳米值替换零值?

标签 python pandas

我有一个数据框,其中的 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/

相关文章:

python - 如何计算具有三角形面的网格的质心?

python - 如何正确使用 FuncFormatter(func)?

python - 如何计算 Pandas DataFrame 上的滚动累积乘积

python - 在 Pandas 数据框中的列中查找成对重叠

python - 除非分隔符后跟特定模式,否则如何在分隔符处拆分字符串?

python - Pandas - 检查相邻列的值

python - 无法使按钮(使用 tkinter 创建)自动退出

python - 对 Pandas 中的多列进行关联

python - python 中类似 switch-case 的结构

python - 如何将 Pandas 中不同列中具有相同项目的行添加在一起