我有一个如下所示的数据框
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']
非常感谢任何帮助或建议。
谢谢,
一个可能的解决方案:
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
用途:
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