将值添加到函数内数据框中的前一行

时间:2016-05-23 20:57:35

标签: python function pandas vectorization

我正在寻找一个在函数框架内生成列C(第一行= 10000)的解决方案,即没有迭代但是使用向量化:

index  A   B   c
 1     0   0   1000
 2     100 0    900
 3     0   0    900
 4     0  200  1100 
 5     0   0   1100

函数应该类似于:

 def calculate(self):
     df = pd.DataFrame()
     df['A'] = self.some_value
     df['B'] = self.some_other_value
     df['C'] = df['C'].shift(1) - df['A'] + df['B']........

但是对前一行的引用不起作用。可以做些什么来完成任务?

1 个答案:

答案 0 :(得分:4)

这应该有效:

df['C'] = 1000 + (-df['A'] + df['B']).cumsum()

df
Out[80]: 
     A    B     C
0    0    0  1000
1  100    0   900
2    0    0   900
3    0  200  1100
4    0    0  1100