【发布时间】:2017-05-26 11:16:33
【问题描述】:
当使用 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 索引的顺序无关紧要)
【问题讨论】:
-
从 0.20.2 开始,您可以使用 ngroup。
-
是的,
ngroup似乎是 0.20.2 前进的最简单和快速的选择(请注意,@calumyou 在下面添加了它作为答案),尽管其他答案可能仍然很有趣,因为它们给出组 ID 的值不同。 -
ngroup也用于此答案:stackoverflow.com/questions/46067934/…