簡體   English   中英

按連續日期和排名分組

[英]Group by Consecutive Dates and Rank

我有一個像這樣的 dataframe,我想按條形碼創建一個名為“排名”的新列,日期條件必須是同一天或具有連續日期,並且每個條形碼必須從 go 到步驟 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

您可以通過分組和使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM