【问题标题】:Group by Consecutive Dates and Rank按连续日期和等级分组
【发布时间】:2020-10-08 18:26:39
【问题描述】:

我有一个这样的数据框,我想创建一个名为“排名”的新列,按条形码分组,日期条件必须是同一天或连续日期,并且必须为每个条形码转到步骤 C。例如,Barcode B 有相同的日期,但是因为它再次进入步骤 C,所以它的排名应该是 2。排名不限于 (1,2),它应该是 1,2,3,4 等基于日期

Date           Barcode         Step       Value
--------------------------------------------------
2014-03-04      A               C             2
2014-03-04      A               D             4
2014-03-05      A               E             3
2014-03-06      A               F             4
2014-03-08      A               C             3
2014-03-08      A               D             2 
2014-03-04      B               C             5
2014-03-04      B               D             6
2014-03-05      B               E             7  
2014-03-06      B               F             8
2014-03-06      B               C             9
Date           Barcode         Step       Value          Rank
---------------------------------------------------------------
2014-03-04      A               C             2          1
2014-03-04      A               D             4          1
2014-03-05      A               E             3          1
2014-03-06      A               F             4          1
2014-03-08      A               C             3          2
2014-03-08      A               D             2          2
2014-03-04      B               C             5          1
2014-03-04      B               D             6          1
2014-03-05      B               E             7          1
2014-03-06      B               F             8          1
2014-03-06      B               C             9          2

【问题讨论】:

    标签: python pandas date


    【解决方案1】:

    你可以通过分组和使用cumcount()来做到这一点

    df = df.sort_values(['Barcode', 'Date'])
    df['Rank'] = df.groupby(['Barcode', 'Step']).cumcount() + 1
    df
    

    给你:

    Date     Barcode    Step    Value   Rank
    2014-03-04  A   C   2   1
    2014-03-04  A   D   4   1
    2014-03-05  A   E   3   1
    2014-03-06  A   F   4   1
    2014-03-08  A   C   3   2
    2014-03-08  A   D   2   2
    2014-03-04  B   C   5   1
    2014-03-04  B   D   6   1
    2014-03-05  B   E   7   1
    2014-03-06  B   F   8   1
    2014-03-06  B   C   9   2
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多