Python 熊猫-按时间段分组/基于多个条件删除连续行

Python 熊猫-按时间段分组/基于多个条件删除连续行,python,pandas,Python,Pandas,解决以下问题的最佳方法是什么: 我有一个熊猫数据框,看起来像这样: Index Date Name Product 01 2017-09-6 18:01:15 Mike xxx 02 2017-09-6 18:02:35 Mike yyy 03 2017-09-6 18:07:25 Mike xxx 04 2017-09-6 18:09:35 Mike

解决以下问题的最佳方法是什么:

我有一个熊猫数据框,看起来像这样:

Index  Date                  Name       Product
01     2017-09-6 18:01:15    Mike       xxx
02     2017-09-6 18:02:35    Mike       yyy
03     2017-09-6 18:07:25    Mike       xxx
04     2017-09-6 18:09:35    Mike       yyy
05     2017-09-6 18:09:39    John       yyy
06     2017-09-6 18:23:15    Mike       xxx
07     2017-09-6 18:25:35    Mike       xxx
08     2017-09-6 18:50:39    John       yyy
09     2017-09-6 18:58:15    Mary       xxx
10     2017-09-6 19:07:20    Mary       xxx
11     2017-09-6 19:07:25    Mike       zzz
12     2017-09-6 19:09:09    Mary       xxx
13     2017-09-6 21:03:45    Mary       zzz
14     2017-09-6 21:12:15    Mike       yyy
15     2017-09-6 21:20:15    Mike       yyy
Index  Date                  Name       Product
01     2017-09-6 18:01:15    Mike       xxx
02     2017-09-6 18:02:35    Mike       yyy
05     2017-09-6 18:09:39    John       yyy
06     2017-09-6 18:23:15    Mike       xxx
08     2017-09-6 18:50:39    John       yyy
09     2017-09-6 18:58:15    Mary       xxx
11     2017-09-6 19:07:25    Mike       zzz
13     2017-09-6 21:03:45    Mary       zzz
14     2017-09-6 21:12:15    Mike       yyy
此数据框表示数据库中多个用户的产品搜索。 我现在想做的是创建一个数据框,它过滤掉同一用户在一定时间内(比如说15分钟)对同一产品的多次搜索——换句话说,在第一次搜索满足名称和产品标准后15分钟内的每一次额外搜索都应该被删除

生成的数据帧应如下所示:

Index  Date                  Name       Product
01     2017-09-6 18:01:15    Mike       xxx
02     2017-09-6 18:02:35    Mike       yyy
03     2017-09-6 18:07:25    Mike       xxx
04     2017-09-6 18:09:35    Mike       yyy
05     2017-09-6 18:09:39    John       yyy
06     2017-09-6 18:23:15    Mike       xxx
07     2017-09-6 18:25:35    Mike       xxx
08     2017-09-6 18:50:39    John       yyy
09     2017-09-6 18:58:15    Mary       xxx
10     2017-09-6 19:07:20    Mary       xxx
11     2017-09-6 19:07:25    Mike       zzz
12     2017-09-6 19:09:09    Mary       xxx
13     2017-09-6 21:03:45    Mary       zzz
14     2017-09-6 21:12:15    Mike       yyy
15     2017-09-6 21:20:15    Mike       yyy
Index  Date                  Name       Product
01     2017-09-6 18:01:15    Mike       xxx
02     2017-09-6 18:02:35    Mike       yyy
05     2017-09-6 18:09:39    John       yyy
06     2017-09-6 18:23:15    Mike       xxx
08     2017-09-6 18:50:39    John       yyy
09     2017-09-6 18:58:15    Mary       xxx
11     2017-09-6 19:07:25    Mike       zzz
13     2017-09-6 21:03:45    Mary       zzz
14     2017-09-6 21:12:15    Mike       yyy
用Python解决这个问题的最佳方法是什么

THX&BR
b驱动

我认为您需要在日期序列上循环以创建过滤器

(假设每个[Name,Product]组的日期列已按升序排序。)


在您的结果中,索引14和15彼此的间隔不超过15分钟。你的意思是只在第一次搜索时定位吗?sry,那是一个错误,我已经更正了它并删除了索引15Hi jf328,thx作为你的答案。我也考虑过这个解决方案,但我希望避免任何循环或迭代。也许会有一个额外的答案,如何用板载pandas方法解决这个问题,否则我会接受你的答案。@b驱动,pandas可以轻松地将数据分为15分钟的间隔,然后你可以在每个间隔中取第一个。但这并不完全是您想要的。@jf328:sry,对于延迟,但是相应的项目被搁置了几个星期。但是你的解决方案运行得非常好,因此它得到了选中标记。来自维也纳的许多THX-巴西