【问题标题】:How to do a merge with conditions in python [duplicate]如何在python中与条件进行合并[重复]
【发布时间】:2020-09-24 01:01:02
【问题描述】:

我有 2 个数据框 df1 和 df2。

df1 有 4000 条记录,df2 有 160 条记录。

我需要根据日期和时间(这是两者的共同列)将 df2 的第 7 列与 df1 合并。

条件:

如果 df1 和 df2 中的日期和时间相同,则将发生正常合并

如果日期相同,但 df1 中的时间是 14:00,df2 的时间是 13:59,之后如果它只有 14:03,那么合并应该在 13:59 时间发生(这是时间在 14:00 之前)。

我试过了:

仅从 df1 中提取日期、时间和第 7 列。

然后我做了一个 pd.merge(左合并)

pd.merge(df1,df2,on['Date,Time],how=left)

但它错过了许多时间不匹配的值。 即使确切的时间不可用,我也希望在所需时间之前的任何可用时间发生合并。

【问题讨论】:

标签: python python-3.x pandas python-2.7


【解决方案1】:

试试

pd.merge_asof(df1, df2, on=['Date','Time'], how='left', direction='backward')

【讨论】:

  • 请解释一下您的解决方案!
猜你喜欢
  • 1970-01-01
  • 2018-02-02
  • 2020-07-24
  • 2018-02-02
  • 1970-01-01
  • 2017-08-14
  • 2018-04-11
  • 2019-10-30
  • 2020-07-26
相关资源
最近更新 更多