我有以下的Dataframe:DF1
| startTimeIso|endTimeIso|身份证|
| --------------|--------------|--------------|
| 2023-03-07T03:28:56.969000|2023-03-07T03:29:25.396000|五|
| 2023-03-07T03:57:08.734000|2023年3月7日03:58:08.734000|七|
| 2023-03-07T04:18:08.734000|2023-03-07T04:20:10.271000|十六岁|
| 2023-03-07T07:58:08.734000|2023-03-07T07:58:10.271000|二十一|
第二个df2
| startTimeIso|endTimeIso|价值|
| --------------|--------------|--------------|
| 2023-03-07T03:28:57.169000|2023年3月7日3时29分25.996000秒|真|
| 2023-03-07T03:57:08.734000|2023年3月7日03:58:08.734000|真|
| 2023-03-07T05:38:08.734000|2023-03-07T05:40:10.271000|真|
| 2023-03-07T07:58:08.934000|2023-03-07T07:58:10.371000|真|
我想检查,如果一行从df 2合并行从df 1.可以有一个公差从1秒. StartTimeIso以及endTimeIso应予以考虑.
结果应如下所示:df_merged
| startTimeIso|endTimeIso|价值|startTimeIso_y|endTimeIso_y|身份证|
| --------------|--------------|--------------|--------------|--------------|--------------|
| 2023-03-07T03:28:57.169000|2023年3月7日3时29分25.996000秒|真|2023-03-07T03:28:56.969000|2023-03-07T03:29:25.396000|五|
| 2023-03-07T03:57:08.734000|2023年3月7日03:58:08.734000|真|2023-03-07T03:57:08.734000|2023年3月7日03:58:08.734000|七|
| 2023-03-07T05:38:08.734000|2023-03-07T05:40:10.271000|真|无|无|无|
| 2023-03-07T07:58:08.934000|2023-03-07T07:58:10.371000|真|2023-03-07T07:58:08.734000|2023-03-07T07:58:10.271000|二十一|
Rows_found = 3
1条答案
按热度按时间km0tfn4u1#
使用
merge_asof
和tolerance
:输出:
如果要考虑开始或结束,请执行两次合并和
combine_first
: