![](/img/trans.png)
[英]Perform Conditional Grouping and selecting second best row using Cumcount in Pandas
[英]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.