将前一行中 2 个单元格的值添加到数据框中的当前行

问题描述 投票:0回答:2

我有一个如下所示的数据框

  Name     Value
====================
   A        2400 
   B        -400
   C        400
   D        600

我需要 df 采用以下格式

  Name    Lower_Value   Upper_Value
======================================
   A          0              2400 
   B        2400             -400
   C        2000             400
   D        2400             0

所以基本上,实际值应该是 Upper_Values,Lower_values 应该是上一行的 Lower_Values 和 Upper_Values 之和

到目前为止,我已经尝试过类似的方法,

df['Upper_Value']=df['Value']
df['Lower_Value'] = df.upper_value.shift(1).fillna(0)
df['Lower_Value'] = df['Lower_Value'] + df['Upper_Value']

非常感谢任何帮助或建议。

谢谢,

python python-3.x pandas dataframe
2个回答
0
投票

一个可能的解决方案:

df.assign(Lower_bound = df['Value'].shift(fill_value=0).cumsum())

输出:

  Name  Value  Lower_bound
0    A   2400            0
1    B   -400         2400
2    C    400         2000
3    D    600         2400

0
投票

用途:

df = df.assign(Upper_Value = df['Value'],
                Lower_Value = df['Value'].shift(fill_value=0).cumsum())


print (df)
  Name  Value  Upper_Value  Lower_Value
0    A   2400         2400            0
1    B   -400         -400         2400
2    C    400          400         2000
3    D    600          600         2400
© www.soinside.com 2019 - 2024. All rights reserved.