创建一个列,在列的最后一行添加avg loss per day值-pandas

wwtsj6pe  于 2023-05-12  发布在  其他
关注(0)|答案(1)|浏览(100)
Day         water level         Avg loss per day
1               100                 NaN
2                90                 NaN
3                88                 NaN
4                87                 NaN
5                77                 NaN
6                75                 NaN
7                74                 (100-74)/7

我想在这个数据框的第三列中找到每天的平均水位损失。
只有最后一行应该有值,其余6行以上应该有NAN。
我尝试使用.ilocnp.nan

df['Avg loss per day']=(df['water level'].iloc[0]-df['water level'].iloc[6])/7
                df = df.round({'Avg loss per day': 2})
                df.loc[0:6,['Avg loss per day']]=np.nan

而是它的投掷错误。有没有其他方法可以不使用iloc

rseugnpd

rseugnpd1#

您可以用途:

df['Avg loss per day'] = df['water level'].shift(6).sub(df['water level']).div(7)

或者,如果“每天平均损失”最初不存在或为空:

df.loc[df.index[-1],
       'Avg loss per day'] = (df['water level'].iloc[0]
                             -df['water level'].iloc[-1])/7

输出:

Day  water level Avg loss per day
0    1          100              NaN
1    2           90              NaN
2    3           88              NaN
3    4           87              NaN
4    5           77              NaN
5    6           75              NaN
6    7           74         3.714286

相关问题