是否有pandas函数允许我根据时间戳比较重复项



我有大约30万条记录,正在寻找重复记录。我写了一个简单的脚本来做这件事,它运行得很好:

import pandas as pd
df = pd.read_csv("input.csv")
dupes = df.duplicated(subset=['Forename','Surname', 'Day of Birth', 'Month of Birth', 'Year of Birth'])
df['Duplicate'] = dupes
df.to_csv('output.csv')

然而,原始数据中还有另一列,时间戳,我被要求只标记时间戳在1小时内的重复项。

我想我可以使用for循环并遍历它,找到上面脚本标记为重复的每个实例,然后找到相同值的其他实例,然后计算时间戳是否在1小时内,并添加一个新列作为结果。但这将非常缓慢(在某些情况下,有10多个相同值的重复项需要相互比较(,我想知道是否有人有更有效的方法?我会有更多这样的文件,我是熊猫的新手,希望能向大家学习。

感谢

我还没有尝试过熊猫

您可以在timestamps上使用diff,然后使用.dt.components['hours']创建另一个小时条件:

hour_condition = df['timestamps'].diff().dt.components['hours'].le(1)
hour_dupes =  df.loc[dupes & hour_condition]

最新更新