2017-10-04 101 views
0

我有兩個dataframes:加入熊貓dataframes在Python具有相同索引多次

>>>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參數的不同組合,但我無法使它工作!

+1

您有重複的索引。如果兩個數據框中的索引順序始終相同,請使用'df1 ['CAPI_PRICE'] = df2 ['CAPI_PRICE']。values'? – Zero

+0

'df = pd.concat([df1,df2],axis = 1)'不起作用? – jezrael

回答

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 
0

您可以通過從第二個數據幀複製像這樣嘗試只是第一個數據幀上添加新列:

df1['CAPI_PRICE']=df2['CAPI_PRICE'] 
相關問題