首页 > 解决方案 > Python - 来自一个数据帧的日期时间列并从另一个数据帧中查找日期时间范围

问题描述

我是 Python 新手,这是我的第一个问题。

我有 df1: DF1:

period  id  cust_id product_id  start_time  end_time
20181001    1   aa  2   01/10/2018 19:04    01/10/2018 19:31
20181001    1   zz  9   01/10/2018 15:57    01/10/2018 16:00
20181001    1   zz  178 01/10/2018 13:01    01/10/2018 13:36
20181001    1   zz  231 02/10/2018 02:51    02/10/2018 02:51

df2:(查表)

PERIOD  product_id  Name    Product_info    START_TIME  END_TIME
20181001    2   Xab GHI 01/10/2018 19:00    01/10/2018 19:29
20181001    2   Xab QQQ 01/10/2018 19:30    01/10/2018 19:59
20181001    2   Xab asd 01/10/2018 20:00    01/10/2018 20:29
20181001    9   S2  Angele  01/10/2018 14:00    01/10/2018 14:59
20181001    9   S2  Road    01/10/2018 15:00    01/10/2018 15:59
20181001    9   S2  Flash   01/10/2018 16:00    01/10/2018 16:59
20181001    9   S2  Simpson 01/10/2018 17:00    01/10/2018 17:29
20181001    178 T3  Chase   01/10/2018 13:00    01/10/2018 13:59
20181001    178 T3  Chase   01/10/2018 14:00    01/10/2018 14:59
20181001    178 T3  Elaine  01/10/2018 15:00    01/10/2018 15:59

我需要 DF1 的结果如下: DF1 的结果:

period  id  cust_id product_id  start_time  end_time    Product_info    Name
20181001    1   aa  2   01/10/2018 19:04    01/10/2018 19:31    GHI Xab
20181001    1   aa  2   01/10/2018 19:04    01/10/2018 19:31    QQQ Xab
20181001    1   zz  9   01/10/2018 15:57    01/10/2018 16:00    Road    S2
20181001    1   zz  9   01/10/2018 15:57    01/10/2018 16:00    Flash   S2
20181001    1   zz  178 01/10/2018 13:01    01/10/2018 13:36    Chase   T3
20181001    1   zz  231 02/10/2018 02:51    02/10/2018 02:51    None    None

DF1 和 DF2 都是有很多行的大表。请帮我解决问题。

我还添加了表格的图像。在此处输入图像描述

提前致谢。

标签: pythonpandasdatetime

解决方案


看起来您想要merge两个 DataFrame,但您没有给出任何标准。目前尚不清楚您为什么要排除某些条目。

请参阅此处了解如何构建问题,以便我们提供最大的帮助。

df1.merge(df2[['product_id', 'Product_info', 'Name']], on='product_id', how='outer')

导致:

      period  id cust_id  product_id        start_time          end_time  \
0   20181001   1      aa           2  01/10/2018 19:04  01/10/2018 19:31
1   20181001   1      aa           2  01/10/2018 19:04  01/10/2018 19:31 
2   20181001   1      aa           2  01/10/2018 19:04  01/10/2018 19:31
3   20181001   1      zz           9  01/10/2018 15:57  01/10/2018 16:00
4   20181001   1      zz           9  01/10/2018 15:57  01/10/2018 16:00
5   20181001   1      zz           9  01/10/2018 15:57  01/10/2018 16:00
6   20181001   1      zz           9  01/10/2018 15:57  01/10/2018 16:00
7   20181001   1      zz         178  01/10/2018 13:01  01/10/2018 13:36
8   20181001   1      zz         178  01/10/2018 13:01  01/10/2018 13:36
9   20181001   1      zz         178  01/10/2018 13:01  01/10/2018 13:36
10  20181001   1      zz         231  02/10/2018 02:51  02/10/2018 02:51

   Product_info Name
0           GHI  Xab
1           QQQ  Xab
2           asd  Xab
3        Angele   S2
4          Road   S2
5         Flash   S2
6       Simpson   S2
7         Chase   T3
8         Chase   T3
9        Elaine   T3
10          NaN  NaN

您可以在此处查看有关合并的更多信息。


推荐阅读