【问题标题】:How to get new records from second dataframe?如何从第二个数据框中获取新记录?
【发布时间】:2021-08-12 22:46:39
【问题描述】:

df1:

StationName RunID ScheduledDate
AAA 12345 2021-08-12
BBB 23456 2021-08-12
DDD 91273 2021-07-15

df2:

StationName RunID ScheduledDate
AAA 12345 2021-08-12
BBB 23456 2021-08-12
AAA 65323 2021-07-20
MMM 14526 2021-05-20

我想使用 RunID 列从 df2 获取新记录,同时消除从 df1 找到的任何重复记录。

预期输出,df3:

StationName RunID ScheduledDate
AAA 65323 2021-07-20
MMM 14526 2021-05-20

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用merge()indicator=Truequery() 过滤掉结果,使用drop() 删除多余的列:

    out=(df1[['RunID']].merge(df2,on='RunID',how='outer',indicator=True)
                       .query("_merge=='right_only'").drop(columns='_merge'))
    

    注意:你也可以通过how='right'进行右合并

    out的输出:

        RunID   StationName     ScheduledDate
    3   65323   AAA             2021-07-20
    4   14526   MMM             2021-05-20
    

    【讨论】:

      猜你喜欢
      • 2018-07-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 2019-12-05
      相关资源
      最近更新 更多