【发布时间】:2021-04-26 15:28:01
【问题描述】:
我目前未解决的问题的第一步是Python removing rows with time condition
问题的第 2 步:从第 1 步得到过滤数据后,想根据相同 ID 和类型的条件进行从 DF1 到 DF2 的连接,并将最近的日期时间从 DF 2 连接到 DF 1(日期DF1的时间必须在DF2之后)
例如DF1 - 退出数据
DatetimeX ID Type
2020-01-01 02:00:01 12345 C
2020-01-01 02:00:01 13333 D
2020-01-01 02:00:50 13333 E
2020-01-01 16:00:01 12211 C
2020-01-02 21:00:01 12211 C
2020-01-03 17:00:01 12211 C
2020-01-04 17:00:01 12211 C
2020-01-05 21:00:01 12211 C
例如DF2 - 输入数据
DatetimeE ID Type
2020-01-01 01:00:00 12345 C
2020-01-01 00:00:01 77777 C
2020-01-01 00:00:05 12345 C
2020-01-01 00:00:20 12345 C
2020-01-01 02:00:05 13333 D
2020-01-01 04:00:50 13333 E
2020-01-01 07:00:01 12211 C
加入后的结束状态,例如DF3
DatetimeX ID Type DatetimeE
2020-01-01 02:00:01 12345 C 2020-01-01 01:00:00
2020-01-01 02:00:01 13333 D
2020-01-01 02:00:50 13333 E
2020-01-01 02:00:01 12211 C 2020-01-01 01:00:30
2020-01-02 21:00:01 12211 C 2020-01-01 07:00:01
我尝试探索 merge 和 merge_asof,但 DF3 的组合数据与任何数据都不匹配。只想请求一些关于如何开始比较的指导。
谢谢!
更新了更多数据样本
【问题讨论】:
-
DF3 = DF1.merge(DF2, how='left', on=['ID', 'Type'])怎么样 -
合并需要满足三个条件。 1. ID,2 类型和 3. df2 的最近时间,也不在 df1 的日期时间之后
-
好的检查解决方案
标签: python pandas dataframe spyder