首页 > 解决方案 > 删除时间间隔在一小时内的相似记录

问题描述

我有一个 Excel 文件,其中包含具有各种时间戳和其他数据的调用。下面的例子:

ID   Date        Time        Call Number     Report Number        Location
00   2020-12-01  15:47:00    12345           104                  123 Main St
01   2020-12-01  16:13:00    13344                                123 Main St #1
02   2020-12-01  15:29:00    15555           201                  12 President St
03   2020-12-01  17:41:00    17342           304                  12 President St
04   2020-12-02  07:04:00    19001           402                  123 Main St

我假设彼此相隔一小时内并且具有相同/相似位置的呼叫是彼此重复的。我想找到这些“重复项”,只保留信息最多的记录——在这个例子中,ID 01 应该被删除。

这个问题对于查找彼此相隔一小时内的记录非常有帮助。将日期和时间列组合成“tstamp”后,下面的代码可以很好地识别彼此在一小时内的时间戳:

mask1hour = (df['tstamp'].diff().le(pd.Timedelta(hours=1)) | df['tstamp'].diff(-1).le(pd.Timedelta(hours=1)) )

我的想法是在数据框上使用 groupby 位置,但这不能处理位置之间的微小差异(错别字、额外信息)。我也不确定如何用更完整的数据保存记录。任何建议将不胜感激!

标签: pythonpandasdatetimeduplicatestimedelta

解决方案


推荐阅读