2016-06-08 58 views
0

簡化。我有兩個數據框,我想合併/連接/連接成一個使用以下方案作爲框架。使用熊貓合併或Concat數據框

DF1看起來像

   C1    C2  C3 
0 1659712000.0 1659712000.0 YQHDK 
1 5797862000.0 5797862000.0 YQHJW 
2 846369000.0  846369000.0 YQHMF 
3 508287000.0  508287000.0 YQHRV 
4 878002000.0  878002000.0 YQHVT 
5   NaN 5178784324.0 YQHRM 

雖然DF2看起來像

 C3    C1 
0 YQHRM 2362463460.0 

我的願望是什麼,填補了NaN值如下:

   C1    C2  C3 
0 1659712000.0 1659712000.0 YQHDK 
1 5797862000.0 5797862000.0 YQHJW 
2 846369000.0  846369000.0 YQHMF 
3 508287000.0  508287000.0 YQHRV 
4 878002000.0  878002000.0 YQHVT 
5 2362463460.0 5178784324.0 YQHRM 

我已經嘗試使用df1.merge(df2, how='left', on='C3),但是這會創建兩個C1列,一個C1_xC1_y

我也嘗試過使用pd.concat([df1, df2]),但這導致YQHRM'兩行。

我在這裏錯過了什麼?

回答

3

看看combine_first()

df1.set_index('C3') 
df2.set_index('C3')  
df2.combine_first(df1) 

       C1   C2 
C3        
YQHDK 1.659712e+09 1659712000 
YQHJW 5.797862e+09 5797862000 
YQHMF 8.463690e+08 846369000 
YQHRM 2.362463e+09 5178784324 
YQHRV 5.082870e+08 508287000 
YQHVT 8.780020e+08 878002000 

df2.reset_index()將恢復indexcolumn

+0

工作,謝謝! – Lisle