2015-07-19 89 views
1

我有2個dataframes:熊貓加入2個dataframes

>>> result 
     id order_nr 
0 3131334 334756912 
0 3131312 386517432 
0 3131309 356299432 
0 3131205 397514312 
      ... 

>>> OMSdf 
    order_nr   status refund_amount 
0 377766482 already_canceled    0 
1 348722582 already_canceled    0 
2 395287472   on_hold    0 
3 345883652 already_canceled    0 
      ... 

那些2個dataframes在該領域 「order_nr」 一些共同的價值觀:

>>> result[result['order_nr'] == '377766482'] 
     id order_nr 
0 3129153 377766482 

>>> OMSdf[OMSdf['order_nr'] == '377766482'] 
    order_nr   status refund_amount 
0 377766482 already_canceled    0 

但是我嘗試加入他們在一起:

resultfinal = result.join(OMSdf, on='order_nr', how='inner', lsuffix='', rsuffix='_oms', sort=False) 

結果爲空:

>>> resultfinal 
Empty DataFrame 
Columns: [id, order_nr, order_nr_oms, status, refund_amount] 
Index: [] 

回答

2

使用下面的代碼

df_merged = pd.merge(result, OMSdf, how='inner') 

在你的情況,你可以order_nr作爲兩個對接前的dataframes指數,如下

result.index = result['order_nr'] 
OMSdf.index = OMSdf['order_nr'] 
+0

由於它的工作原理,但我不理解爲什麼第一個語法不是 – user2741700

+0

請看看編輯後的響應。基本上你需要在加入之前轉換索引 –