在python中如何计算具有初始值的列
我有一个数据帧(df),如下所示:在python中如何计算具有初始值的列,python,pandas,Python,Pandas,我有一个数据帧(df),如下所示: Date rtns 10/1/2000 NaN 11/1/2000 0.015 12/1/2000 -0.007 我想添加一列“累计值”,从2000年1月10日的100.0000开始,然后在11日,100*(1+0.015)=101.5;在12号,101.5*(1-0.007),依此类推 我试过: #添加虚拟列,计算累积值: df['Accumulated Values']=100 acv=df['Accumulated Values'] a
Date rtns
10/1/2000 NaN
11/1/2000 0.015
12/1/2000 -0.007
我想添加一列“累计值”,从2000年1月10日的100.0000开始,然后在11日,100*(1+0.015)=101.5;在12号,101.5*(1-0.007),依此类推
我试过:
#添加虚拟列,计算累积值:
df['Accumulated Values']=100
acv=df['Accumulated Values']
acv[1:]=(df.rtns[1:]+1)*acv[1:].shift(1)
#添加列
df['Accumulated Values']=acv
问题是
acv[1::]。第一行的shift(1)
始终为NaN。为什么不将第一行设置为100df.iloc[0,1]=100
{df['cumulated Values']=100}已经涵盖了这一点-将第一行设置为100No,但您只需在RTN上操作……很抱歉,在操作acv之前错过了这一点:“acv=df['cumulated Values']”