【问题标题】:Pandas identify duplicates and parent duplicate based on specific time rangePandas 根据特定时间范围识别重复项和父项重复项
【发布时间】:2021-12-05 02:42:29
【问题描述】:

我有一个像这样的df:

ID Amount Date
1   23    3/1/2021 12:00PM
1   23    3/1/2021 12:01PM
1   23    3/1/2021 12:05PM
1   23    3/1/2021 12:09PM
1   24    3/2/2021 12:05PM
2   43    3/1/2021 12:00PM
2   43    3/1/2021 12:01PM
2   432   3/1/2021 12:05PM

我想在特定时间窗口(5 分钟或更短)内识别重复项。 除了查找重复项之外,我还需要计算该组中重复项的数量并标记父重复项。

我的初步输出是:

我想要的输出是:

我参考了下面的链接以获得初步输出,但很难找到所需的输出:

  1. pandas dataframe: duplicates based on column and time range
  2. Drop duplicate rows from a pandas DataFrame whose timestamps are within a specified range or duration

任何帮助将不胜感激。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    这是你要找的吗?

    df.groupby(['Id',pd.Grouper(key='Date',freq = '5min')]).agg(Amount = ('Amount','first'),
                                                              HaveDuplicates = ('Amount',lambda x: x.duplicated().any()),
                                                              Count_Duplicate = ('Amount',lambda x: x.duplicated().sum()))
    

    【讨论】:

    • 您好,感谢您的回复。如果时间窗口小于 5 分钟?它适用于这种情况吗?
    • 此代码将跳过那些小于 5 分钟且以 5 分钟为间隔查看的值。
    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 2015-04-20
    • 2017-11-26
    • 2020-07-21
    • 2015-09-26
    • 2021-09-01
    • 2020-12-20
    相关资源
    最近更新 更多