有没有一个Pandas函数,将允许我比较基于时间戳的副本?

r3i60tvu  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(100)

我有大约300k的记录,正在寻找重复。我已经写了一个简单的脚本来做这件事,它工作得很好:

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+个相同值的副本,它们都需要彼此比较),我想知道有没有人有更有效的方法?我会有更多像这样的文件,我是Pandas的新手,所以希望向你们所有人学习。
谢谢
我还没试过Pandas

nhjlsmyf

nhjlsmyf1#

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

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

相关问题