Python:如何在pandas数据框中基于delta时间选择行?

我有一个数据框,如下所示。

df

          i   j      t_start_date_x        t_end_date_x      t_start_date_y     t_end_date_y
20149   491 191 2020-03-20 12:44:03 2020-03-20 16:03:57 2020-03-20 10:40:47 2020-03-20 17:12:14
20150   504 505 2020-03-20 12:54:14 2020-03-20 16:20:48 2020-03-20 16:39:59 2020-03-20 22:59:14
20151   505 504 2020-03-20 16:39:59 2020-03-20 22:59:14 2020-03-20 12:54:14 2020-03-20 16:20:48
20152   506 282 2020-03-20 10:39:35 2020-03-20 16:31:48 2020-03-20 15:24:32 2020-03-20 15:34:34
20153   515 494 2020-03-20 12:56:40 2020-03-20 18:58:15 2020-03-20 09:55:16 2020-03-20 15:31:22

我想只保留时间上有重叠的行。

          i   j      t_start_date_x        t_end_date_x      t_start_date_y     t_end_date_y
20149   491 191 2020-03-20 12:44:03 2020-03-20 16:03:57 2020-03-20 10:40:47 2020-03-20 17:12:14
20152   506 282 2020-03-20 10:39:35 2020-03-20 16:31:48 2020-03-20 15:24:32 2020-03-20 15:34:34
20153   515 494 2020-03-20 12:56:40 2020-03-20 18:58:15 2020-03-20 09:55:16 2020-03-20 15:31:22

解决方案:

你可以通过检查’t_start_date_x’是否在’t_end_date_y’之前,并且相同的反转x和y来实现。

mask_overlap = ((df['t_start_date_x']<=df['t_end_date_y'])
               & (df['t_start_date_y']<=df['t_end_date_x']))
df_overlap = df[mask_overlap]

给TA打赏
共{{data.count}}人
人已打赏
未分类

在编译时评估多态对象。

2022-9-9 6:03:18

未分类

如何在一个数组中使用foreach来计算小于10的数字?

2022-9-9 6:03:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索