使用Pandas

时间:2016-06-08 15:00:10

标签: python pandas join dataframe merge

简化。我有两个数据帧,我想使用以下场景作为框架合并/连接/连接到一起。

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'两行。

我在这里缺少什么?

1 个答案:

答案 0 :(得分: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()会将index还原为column