我正在寻找一个在函数框架内生成列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']........
但是对前一行的引用不起作用。可以做些什么来完成任务?
答案 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