取熊猫数据框中两个值的平均值

时间:2021-06-02 12:00:59

标签: python pandas dataframe loops

假设我有以下数据框,

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)

1 个答案:

答案 0 :(得分:3)

使用 fillna()shift()shift(1) 会给你更高的值(因为它向下移动数据帧),而 shift(-1) 会给你更低的值(因为它向上移动数据帧)。

df = df.fillna((df.shift(1)+df.shift(-1))/2)

df.fillna((df.shift(1)+df.shift(-1))/2, inplace = True)