使用数据框中行的先前值来构建当前单元格值

时间:2019-05-06 09:42:41

标签: python-3.x pandas dataframe

我有一个此处表示的数据框

   A     
0.001216  
0.000453
0.00506
0.004556
0.005266

我想根据下面代码中显示的公式创建新的列B。

column_key = 'B'
factor = 'A' 
df[column_key] = np.nan
df[column_key][0] = (df[factor][0] + 1) * 100
for i in range(1, len(df)):
    df[column_key][i] = (df[factor][i] + 1) * df[column_key][i-1]

我一直在尝试使用列的上一个单元格和列的相邻单元格填充当前单元格值。

这是我尝试过的方法,但是我认为这不会有效。

有人可以帮助我以最有效的方式解决此问题吗?

1 个答案:

答案 0 :(得分:1)

使用pandas.cumprod(),可以通过以下方式完成:

df['B'] = df['A'] + 1
df['B'][0] = df['B'][0] * 100
df['B'] = df['B'].cumprod()