首页 > 解决方案 > 如何在python中与条件进行合并

问题描述

我有 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)

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

标签: pythonpython-3.xpandaspython-2.7

解决方案


尝试

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

推荐阅读