pandas函数,使用先前计算的值

时间:2014-12-05 17:17:12

标签: pandas

有一个简单的问题,我没有找到一个简单的答案。例如,可以使用此数据框:

A = pd.Series([0.1,-0.2,0.14,0.12,-0.11])
B = pd.Series([1.0,3.0,2.0,6.0,9.0])
df = pd.DataFrame({'A':A,'B':B})

我现在想创建一个C列,如下所示:

C_i = A_i*(B_i+C_{i-1})

即。计算C的值我需要先前计算的C值。这可以通过简单的for循环来完成,但我想使用map,apply或其他一些pandas功能。这可以通过简单的方式完成吗?

我在电子表格中对其进行了测试,这就是我要找的内容:

A       B   C
0,1     1   0,10000
−0,2    3   −0,62000
0,14    2   0,19320
0,12    6   0,74318
−0,11   9   −1,07175 

1 个答案:

答案 0 :(得分:0)

获得此目的的一种方法:

df['C'] = df.A * df.B
df['C'] = df.C + (df.A * df.C.shift().fillna(0))
df

哪个收益率:

      A  B      C
0  0.10  1  0.100
1 -0.20  3 -0.620
2  0.14  2  0.196
3  0.12  6  0.754
4 -0.11  9 -1.069

这看起来像你想要的。