帧df1
和df2
组成df3
。部分数据帧(因为它们很大)如下所示
df1
:
total_pnl_per_pos invested
date
2015-03-17 0.330533 145790.529585
2015-03-18 -0.132040 152116.458134
2015-03-19 0.189508 141114.361229
2015-03-20 0.346906 323712.355051
2015-03-21 -0.004500 149999.909424
df2
:
total_pnl_per_pos invested
date
2015-03-16 -0.009346 3843277.00
2015-03-17 -0.025422 4495925.00
2015-03-18 -0.093223 4233412.00
2015-03-19 -0.144945 4340475.00
2015-03-20 -0.030945 6107379.00
我希望df3
是df1
+ df1
并看起来像这样:
total_pnl_per_pos invested
date
2015-03-16 -0.009346 3843277
2015-03-17 0.305111 4641715.53
2015-03-18 -0.225263 4385528.458
2015-03-19 0.044563 4481589.361
2015-03-20 0.315961 6431091.355
2015-03-21 -0.0045 149999.9094
请不要按日期对df1和df2进行索引,并且每个数据帧中的日期不一定相同。
我尝试使用:
df3= df1.set_index('date').add(df2.set_index('date'), fill_value=0).reset_index()
和
df3= pd.concat([df1, df2]).groupby('date').sum().reset_index()
但是,当我尝试两种不同的解决方案时,出现KeyError: 'date'
错误。有人可以让我知道我哪里出了问题。
谢谢
答案 0 :(得分:1)
似乎date
已被索引。换句话说,您不能将date
分配为索引两次。因此,下面的方法可以工作:
df3 = df1.add(df2, axis='index', fill_value=0)
输出:
total_pnl_per_pos invested
date
2015-03-16 -0.009346 3.843277e+06
2015-03-17 0.305111 4.641716e+06
2015-03-18 -0.225263 4.385528e+06
2015-03-19 0.044563 4.481589e+06
2015-03-20 0.315961 6.431091e+06
2015-03-21 -0.004500 1.499999e+05
希望这会有所帮助。