簡體   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