[英]Taking average between two values in pandas Data frame
假设我有以下 Dataframe,
A B C D E
0 1.625627 8.910396 9.171640 1.980580 8.429633
1 7.228290 6.431085 5.399684 8.442247 2.609367
2 NaN NaN NaN NaN NaN
3 2.533768 3.877104 8.199575 5.138173 7.248905
4 0.351828 1.233081 1.004183 6.497358 0.76487
我想遍历每一行以将NaN值替换为上限值和下限值之间的平均值。
我尝试使用以下代码,但没有任何结果:
for i, row in df.iterrows():
if i in row[:] > 1.0:
print(i)
使用fillna()
和shift()
。 shift(1)
将为您提供较高的值(因为它的移动 dataframe 向下)和shift(-1)
将为您提供较低的值(因为它的移动 dataframe 向上字)。
df = df.fillna((df.shift(1)+df.shift(-1))/2)
或者
df.fillna((df.shift(1)+df.shift(-1))/2, inplace = True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.