【发布时间】:2021-12-10 11:39:16
【问题描述】:
假设我有以下数据框
df.Consumption
0 16.208
1 11.193
2 9.845
3 9.348
4 9.091
...
19611 0.000
19612 0.000
19613 0.000
19614 0.000
19615 0.000
Name: Consumption, Length: 19616, dtype: float64
我想用不是 0.00 的前 10 个值和下一个值的平均值替换 0 值
有什么好的方法吗?我正在考虑使用 replace 和 interpolate 方法,但我看不到如何有效地编写它
【问题讨论】:
-
上一个值和下一个值的个数是如何分布的?对于非零的前一个和下一个数字,我们应该各有 5 个,还是应该有最接近的前一个和下一个非零值,前一个优先级?
-
@taxevader 是的,这将是最合乎逻辑的方式。我也认为它应该是平均分布的,如果没有足够的值(例如,如果我们在开始或结束时我们从另一边选择更多),但无论如何我猜这是一个细节。我只是想看看是否有不需要循环的方法
标签: python pandas dataframe imputation