【问题标题】:assign value to a group pandas based on a day difference between them根据它们之间的天差为一组熊猫分配价值
【发布时间】:2020-10-26 15:01:10
【问题描述】:

我有一个带有 ID 和日期的数据框(并计算出相同 ID 的行之间的天差)

ID  date    day_difference 
1   27/06/2019  0
1   28/06/2019  1
1   29/06/2019  1
1   01/07/2019  2
1   02/07/2019  1
1   03/07/2019  1
1   05/07/2019  2
2   27/06/2019  0
2   28/06/2019  1
2   29/06/2019  1
2   01/08/2019  33
2   02/08/2019  1
2   03/08/2019  1
2   04/08/2019  1

如果日差大于 30 天,我想按 ID 分组并计算总持续时间,然后再次使用该 ID,并创建一个新组,从 30 天间隔后的那一天开始计算持续时间。

想要的结果

ID  Duration
1   8
2   3
2   4

谢谢。

【问题讨论】:

    标签: pandas conditional-statements pandas-groupby


    【解决方案1】:

    你可以这样做:

    (df.groupby(['ID', df.day_difference.gt(30).cumsum()])
       .agg(ID=('ID','first'), Duration=('ID','count'))
       .reset_index(drop=True)
    )
    

    输出:

       ID  Duration
    0   1         7
    1   2         3
    2   2         4
    

    【讨论】:

      猜你喜欢
      • 2020-12-11
      • 2022-11-29
      • 2018-05-24
      • 2023-01-27
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多