【问题标题】:Pandas concatenate and merge two dataframesPandas 连接并合并两个数据框
【发布时间】:2019-08-29 23:08:55
【问题描述】:

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

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

【问题讨论】:

    标签: pandas merge concat


    【解决方案1】:

    pd.concatrename 一起使用:

    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
    

    【讨论】:

      猜你喜欢
      • 2017-06-08
      • 2018-09-27
      • 2015-10-17
      • 2018-03-14
      • 1970-01-01
      • 2014-03-23
      • 2015-04-17
      • 2020-04-07
      相关资源
      最近更新 更多