簡體   English   中英

第二列中有條件的值計數

[英]Conditional cumcount of values in second column

我想根據KEY列中的值在flag列中填充數字。

  • 如果列KEY中的值保持不變,我想為每兩行填充相同的數字,而不是使用cumcount()來填充增量數字。
  • 如果KEY列中的值發生變化,則填充的數字也會發生變化。

這是示例,df1 是我想要的 df0。

df0 = pd.DataFrame({'KEY':['0','0','0','0','1','1','1','2','2','2','2','2','3','3','3','3','3','3','4','5','6']})

df1 = pd.DataFrame({'KEY':['0','0','0','0','1','1','1','2','2','2','2','2','3','3','3','3','3','3','4','5','6'],
                    'flag':['0','0','1','1','2','2','3','4','4','5','5','6','7','7','8','8','9','9','10','11','12']})

你想獲得 cumcount 並添加一個。 然后使用%2區分奇數行或偶數行。 然后,取累加和減1,從零開始計數。

您可以使用:

df0['flag'] = ((df0.groupby('KEY').cumcount() + 1) % 2).cumsum() - 1
df0
Out[1]: 
   KEY  flag
0    0      0
1    0      0
2    0      1
3    0      1
4    1      2
5    1      2
6    1      3
7    2      4
8    2      4
9    2      5
10   2      5
11   2      6
12   3      7
13   3      7
14   3      8
15   3      8
16   3      9
17   3      9
18   4     10
19   5     11
20   6     12

暫無
暫無

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

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