【问题标题】:Aggregate Pandas DataFrame Counts by Dates in Groupby在 Groupby 中按日期聚合 Pandas DataFrame 计数
【发布时间】:2021-07-17 04:59:30
【问题描述】:

我有一个 Pandas DataFrame,其中包含第一个和最后一个日期列,我从中构造了一个 dr 字段,其中包含范围内的日期列表:

_id     FID     first_seen    last_seen     dr
607abc  1925    2020-11-13    2021-04-22    DatetimeIndex(['2020-11-13', '2020-11-14', '20...])
608abd  1925    2021-03-05    2021-03-07    DatetimeIndex(['2021-03-05', '2021-03-06', '20...])
442xae  1331    2020-05-05    2021-04-22    DatetimeIndex(['2020-05-05', '2021-04022', '20...])
...

对于每个FID,对于与该FID 相关联的每个日期,我需要获取该日期_id 的计数。例如,从上面,如下:

FID     date          count(_id)
1925    2020-11-13    44
1925    2020-11-14    46
...
1925    2021-04-22    61
1331    2020-05-05    189
1331    2020-05-06    190
...

我知道我需要先按 FID 分组,然后得到 first_seen 的最小值和 last_seen 的最大值,然后我就卡住了......

【问题讨论】:

    标签: python pandas group-by count date-range


    【解决方案1】:

    让我们试试explode

    df.explode('dr').groupby(['FID','dr']).size()
    

    或者我们可以在这里试试value_counts

    df.explode('dr').value_counts(['FID','dr'])
    

    【讨论】:

    • 脑残,谢谢你帮我解决了这个问题!
    猜你喜欢
    • 2020-01-28
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2014-06-28
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多