This question already has answers here:
groupby counter of rows
(2个答案)
去年关闭。
我正在尝试在data.frame中的组内建立索引
例如,在此数据框中
我想输出如下
在R中,我可以简单地使用data.table
先感谢您。
(2个答案)
去年关闭。
我正在尝试在data.frame中的组内建立索引
例如,在此数据框中
Col1
A
A
A
B
B
C
D
D
D
我想输出如下
Col1 idx
A 1
A 2
A 3
B 1
B 2
C 1
D 1
D 2
D 3
在R中,我可以简单地使用data.table
df[, idx:=seq_len(.N), by=Col1]
执行以下操作。我在Python中找不到等效项时遇到麻烦。到目前为止,我知道我可以在linspace
的程序包中使用arrange
或numpy
函数,但是我不确定如何按组进行操作。先感谢您。
最佳答案
使用cumcount
In [289]: df['idx'] = df.groupby('Col1').cumcount().add(1)
In [290]: df
Out[290]:
Col1 idx
0 A 1
1 A 2
2 A 3
3 B 1
4 B 2
5 C 1
6 D 1
7 D 2
8 D 3