Python 向函数内dataframe中的前一行添加值

Python 向函数内dataframe中的前一行添加值,python,function,pandas,vectorization,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.som

我正在寻找一种在函数框架内生成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']........
但对前一行的引用不起作用。如何完成列出的任务?

这应该可以:

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

出于兴趣,是否有一种方法(本着.shift(1)的精神)以矢量形式引用先前的单元格?在逻辑“如果A=100,则计算C=1000+A,否则使用先前的单元值C”?
。移位(1)
移位现有序列,这不是动态操作。您描述的是一个迭代过程,在Excel或循环中很容易实现,但对于该操作,您需要向量C的处理版本(先前的值是指使用相同公式计算的先前值)。但是,pandas使用具有初始值的现有向量。据我所知,若并没有循环,你们所描述的是不可能的。你们为什么要删除这个问题?我有答案给你们。或者你们也找到答案了吗?;)对不起,我自己为第一部分找到了一个解决方案,使问题看起来很愚蠢(没有问题)。)另一个问题很难回答;)