当使用 groupby() 时,如何创建一个包含组编号索引的新列的 DataFrame,类似于 R 中的 dplyr::group_indices
。例如,如果我有
>>> df=pd.DataFrame({'a':[1,1,1,2,2,2],'b':[1,1,2,1,1,2]})
>>> df
a b
0 1 1
1 1 1
2 1 2
3 2 1
4 2 1
5 2 2
我怎样才能得到像这样的DataFrame
a b idx
0 1 1 1
1 1 1 1
2 1 2 2
3 2 1 3
4 2 1 3
5 2 2 4
(idx
索引的顺序无关紧要)
最佳答案
这是使用来自 a comment above by Constantino 的 ngroup
(自 pandas 0.20.2 起可用)的解决方案.
import pandas as pd
df = pd.DataFrame({'a':[1,1,1,2,2,2],'b':[1,1,2,1,1,2]})
df['idx'] = df.groupby(['a', 'b']).ngroup()
df
a b idx
0 1 1 0
1 1 1 0
2 1 2 1
3 2 1 2
4 2 1 2
5 2 2 3
关于python - Pandas :为groupby标识的每个组分配一个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41594703/