从时间戳在指定范围或持续时间内的pandas数据帧中删除重复行

2024-10-02 08:14:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

^{1}$

我想删除所有重复项,其中重复项被定义为具有相同的主语、动词、宾语,并且在X天范围内(在我的示例中:5天)。在

^{pr2}$

这两个例子“史蒂夫-油漆-房子”是因为他们是在5天的窗口外。在

我知道我可以使用一些数据结构和DataFrame的iterrows方法来实现这一点,但是有没有一种方法可以使用Pandas drop\u duplicates来实现呢?在


Tags: 数据方法示例数据结构dataframepandas定义动词
1条回答
网友
1楼 · 发布于 2024-10-02 08:14:43

duplicated+diffgroupby一起使用,以确定要删除的行。在

c = ['Subject', 'Verb', 'Object']

def f(x):
    return x[c].duplicated() & x.Date.diff().dt.days.lt(5)

df = df.sort_values(c)
df[~df.groupby(c).apply(f).values]

  Subject     Verb Object       Date
0    Bill      Ate   Food 2015-07-11
1   Steve  Painted  House 2011-08-12
3   Steve  Painted  House 2011-08-25

相关问题 更多 >

    热门问题