【发布时间】:2017-11-30 07:41:29
【问题描述】:
我有一个(非常简单的)熊猫数据框,看起来像这样:
df
datetime user type msg
0 2012-11-11 15:41:08 u1 txt hello world
1 2012-11-11 15:41:11 u2 txt hello world
2 2012-11-21 17:00:08 u3 txt hello world
3 2012-11-22 18:08:35 u4 txt hello you
4 2012-11-22 18:08:37 u5 txt hello you
我现在想做的是获取所有时间戳在 3 秒内的重复消息。期望的输出是:
datetime user type msg
0 2012-11-11 15:41:08 u1 txt hello world
1 2012-11-11 15:41:11 u2 txt hello world
3 2012-11-22 18:08:35 u4 txt hello you
4 2012-11-22 18:08:37 u5 txt hello you
没有第三行,因为它的文本与第一行和第二行相同,但它的时间戳不是 3秒以内。
我尝试将列 datetime 和 msg 定义为 duplicate() 方法的参数,但它返回一个空数据帧,因为时间戳不相同:
mask = df.duplicated(subset=['datetime', 'msg'], keep=False)
print(df[mask])
Empty DataFrame
Columns: [datetime, user, type, msg, MD5]
Index: []
有没有一种方法可以为我的“日期时间”参数定义一个范围?为了说明,某事 喜欢:
mask = df.duplicated(subset=['datetime_between_3_seconds', 'msg'], keep=False)
我们将一如既往地为您提供任何帮助。
【问题讨论】:
标签: python pandas datetime duplicates conditional-statements