繁体   English   中英

在 pandas 数据帧中取两个值的平均值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM