Pandas是否有办法根据列值对DataFrame中的组进行编号?如果我的框架看起来像这样
Column1 Column2 Column3
0 A X 23
1 A X 45
2 A Y 32
3 A Y 53
4 A Y 67
5 B X 85
6 B Y 12
7 B Y 94
我希望能够做的事情就像
df.group_numbers(['Column1', 'Column2'])
Column1 Column2 Column3 GroupNumber
0 A X 23 1
1 A X 45 1
2 A Y 32 2
3 A Y 53 2
4 A Y 67 2
5 B X 85 3
6 B Y 12 4
7 B Y 94 4
答案 0 :(得分:1)
根据ajcr
的评论中的建议,pd.factorize
是可行的方法。在您的情况下,您可以添加两列以快速创建一个键数组,方法是添加两个列之间的分隔符。分隔符是为了避免ab, c
和a, bc
建议DSM
和df['GroupNumber'] = pd.factorize(df.Column1 + ' ' + df.Column2)
混淆。
pd.lib.fast_zip
它仍然比使用{{1}}更快。