2016-06-08 59 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