我的数据集中有一列看起来像这样:
col1
100
100
100
101
101
102
102
103
103
103
103
104
104
我想创建一个列,每个组的数量越来越多。具体而言,100
中col1
的位置将为01
。下一个100
将有02
,依此类推。当它到达具有101
的行时,它将执行类似的操作:01
,下一个101
,02
就像使用100
一样。
我试过了,我无法按照我的计划行事: 我必须先制作一个新专栏
df['nc'] = df.groupby(col1)
这是错误的。
期望的输出:
col1 nc
100 01
100 02
100 03
101 01
101 02
102 01
102 02
103 01
103 02
103 ........ and so on
103
104
104
答案 0 :(得分:4)
我认为你正在寻找这个。
df['nc'] = df.groupby('col1').cumcount()+1
给出了:
col1 nc
0 100 1
1 100 2
2 100 3
3 101 1
4 101 2
5 102 1
6 102 2
7 103 1
8 103 2
9 103 3
10 103 4
11 104 1
12 104 2
如果您需要前导零,可以根据需要格式化数字。