【问题标题】:Group-by some value with time condition in pandas [duplicate]在熊猫中按时间条件对某些值进行分组[重复]
【发布时间】:2022-11-28 14:29:08
【问题描述】:

假设我有一个这样的 df-

ID-A ID-B ID-C        Time
 1     A    X   2022/01/01 09:00:00
 1     A    X   2022/01/01 09:10:00
 1     A    Y   2022/01/02 10:15:00
 2     B    Y   2022/01/01 11:45:00
 2     C    Y   2022/01/01 01:00:00
 2     C    Y   2022/01/01 12:00:00

我想对 ID-A 和 ID-B 进行分组,并找出每组 ID-C 的总和。新的时间字段应该是开始时间(每组的最小值)和结束时间(每组时间的最大值)。
所需的数据框-

ID-A ID-B Value       start_time             end_time  
 1    A     3     2022/01/01 09:00:00  2022/01/02 10:15:00
 2    B     1     2022/01/01 11:45:00  2022/01/01 11:45:00
 2    C     2     2022/01/01 01:00:00  2022/01/01 12:00:00

【问题讨论】:

  • 你如何总结 ID-C,它有 X、Y 等
  • 我想你的意思是,count而不是sum用于聚合

标签: python pandas dataframe numpy group-by


【解决方案1】:

利用:

(df.groupby(['ID-A', 'ID-B'], as_index=False)
   .agg(Value=('ID-C', 'size'),
        start_time=('Time', 'min'),
        end_time=('Time', 'max'),
        )
)

【讨论】:

    猜你喜欢
    • 2021-11-05
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2022-12-17
    • 2020-08-10
    • 2016-11-18
    相关资源
    最近更新 更多