[英]Pandas: Fill gaps in a series with mean
Given df给定 df
df = pd.DataFrame({'distance': [0,1,2,np.nan,3,4,5,np.nan,np.nan,6]})
distance
0 0.0
1 1.0
2 2.0
3 NaN
4 3.0
5 4.0
6 5.0
7 NaN
8 NaN
9 6.0
I want to replace the nans with the inbetween mean我想用中间平均值替换 nans
Expected output:预计 output:
distance
0 0.0
1 1.0
2 2.0
3 2.5
4 3.0
5 4.0
6 5.0
7 5.5
8 5.5
9 6.0
I have seen this_answer but it's for a grouping which isn't my case and I couldn't find anything else.我已经看到了 this_answer但它是针对一个不是我的情况的分组,我找不到其他任何东西。
If you don't want df.interpolate
you can compute the mean of the surrounding values manually with df.bfill
and df.ffill
如果你不想
df.interpolate
你可以用df.bfill
和df.ffill
手动计算周围值的平均值
(df.ffill() + df.bfill()) / 2
Out:出去:
distance
0 0.0
1 1.0
2 2.0
3 2.5
4 3.0
5 4.0
6 5.0
7 5.5
8 5.5
9 6.0
How about using linear interpolation?使用线性插值怎么样?
print(df.distance.interpolate())
0 0.000000
1 1.000000
2 2.000000
3 2.500000
4 3.000000
5 4.000000
6 5.000000
7 5.333333
8 5.666667
9 6.000000
Name: distance, dtype: float64
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.