使用相同的索引多次将Python中的Pandas数据帧加入

时间:2017-10-04 12:21:12

标签: python pandas dataframe

我有两个数据帧:

>>>import import pandas as pd
>>>df1:

                 DD_PRICE
DATE                         
2013-09-19 20:55:00  3.516
2013-09-19 20:55:00  3.516
2013-09-19 20:55:00  3.516
2013-09-19 20:55:00 -4.476

>>>df2:
                 CAPI_PRICE
DATE                         
2013-09-19 20:55:00  3.516
2013-09-19 20:55:00  3.516
2013-09-19 20:55:00  3.516
2013-09-19 20:55:00 -4.476

现在我跑的时候:

 joint_df = df1.join((df2), how='outer')

joint_df看起来像这样:

                  DD_PRICE  CAPI_PRICE
DATE                                   
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516 -4.476
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516 -4.476
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516 -4.476
2013-09-19 20:55:00 -4.476  3.516
2013-09-19 20:55:00 -4.476  3.516
2013-09-19 20:55:00 -4.476  3.516
2013-09-19 20:55:00 -4.476 -4.476

这不是我想要的......

理想情况下,我希望joint_df看起来像这样:

                  DD_PRICE  CAPI_PRICE
DATE                                   
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00  3.516  3.516
2013-09-19 20:55:00 -4.476 -4.476

我如何完成这项工作?尝试了mergejoin参数的不同组合,但我无法让它工作!

2 个答案:

答案 0 :(得分:1)

似乎你只能使用concat - 默认情况下有外连接:

df = pd.concat([df1, df2], axis=1)
print (df)
                     DD_PRICE  CAPI_PRICE
DATE                                     
2013-09-19 20:55:00     3.516       3.516
2013-09-19 20:55:00     3.516       3.516
2013-09-19 20:55:00     3.516       3.516
2013-09-19 20:55:00    -4.476      -4.476

答案 1 :(得分:0)

您可以尝试在第一个数据框上添加一个新列,方法是从第二个数据框中复制它,如下所示:

df1['CAPI_PRICE']=df2['CAPI_PRICE']