首页 > 解决方案 > Pandas 连接并合并两个数据框

问题描述

我有两个数据框,它们的列大多不同,但其中两列几乎相同,即框架和日期。

df_1 
id  FRAME  var_1    date
 1     10     15  3/4/16
 2     12     69  3/5/17

df_2
id  frame  var_2        date_time
 1     11     15  3/2/16 08:14:32
 2     12     69  3/5/17 09:12:29

现在,我正在使用 pd.concat 作为df_3 = pd.concat([df_1, df_2], axis=0, ignore_index=True)

df_3 
id  FRAME  var_1    date  frame   var_2       date_time
 1     10     15  3/4/16    NaN    NaN              NaT
 2     12     69  3/5/17    NaN    NaN              NaT
 3    NaN    NaN     NaT     11     15  3/2/16 08:14:32
 4    Nan    NaN     NaT     12     69  3/5/17 09:12:29

我想要的是合并的 FRAME 和 date/date_time 列

df_3 
id  FRAME  var_1   var_2       date_time
 1     10     15     NaN           3/4/16
 2     12     69     NaN           3/5/17
 3     11    NaN      15  3/2/16 08:14:32
 4     12    NaN      69  3/5/17 09:12:29

标签: pandasmergeconcat

解决方案


pd.concat与 一起使用rename

df_3 = pd.concat([df_1, 
                  df_2.rename(columns={'frame':'FRAME', 'date_time':'date'})], 
                 ignore_index=True, 
                 sort=True)

输出

   FRAME             date  var_1  var_2
0     10           3/4/16   15.0    NaN
1     12           3/5/17   69.0    NaN
2     11  3/2/16 08:14:32    NaN   15.0
3     12  3/5/17 09:12:29    NaN   69.0

推荐阅读