gpt4 book ai didi

python - 从时间戳在指定范围或持续时间内的 Pandas DataFrame 中删除重复行

转载 作者:行者123 更新时间:2023-12-04 16:46:50 25 4
gpt4 key购买 nike

我有一个像这样的数据帧:

Subject Verb    Object  Date
---------------------------------
Bill Ate Food 7/11/2015
Steve Painted House 8/12/2011
Bill Ate Food 7/13/2015
Steve Painted House 8/25/2011

我想删除所有重复项,其中重复项被定义为具有相同的主语、动词、宾语和 落在 X 天范围内 (在我的例子中:5 天)。
Subject Verb    Object  Date
---------------------------------
Bill Ate Food 7/11/2015
Steve Painted House 8/12/2011
Steve Painted House 8/25/2011

“Steve - Painted - House”的两个实例都没有被移除,因为它们在 5 天的窗口之外。

我知道我可以使用一些数据结构和 DataFrame 的 iterrows 方法来做到这一点,但是有没有办法使用 Pandas drop_duplicates 做到这一点?

最佳答案

使用 duplicated + diff结合 groupby找出要删除的行。

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

关于python - 从时间戳在指定范围或持续时间内的 Pandas DataFrame 中删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47341275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com