Python 数据帧中的组编号
Pandas中是否有方法根据列值对数据帧中的组进行编号?如果我的身体看起来像这样Python 数据帧中的组编号,python,pandas,Python,Pandas,Pandas中是否有方法根据列值对数据帧中的组进行编号?如果我的身体看起来像这样 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
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
正如ajcr的评论中所建议的那样,
pd.factorize
。在本例中,您可以添加这两列,通过添加两列之间带有分隔符,快速创建键数组。分隔符是为了避免像DSM
建议的那样混淆ab、c
和a、bc
等对
df['GroupNumber'] = pd.factorize(df.Column1 + ' ' + df.Column2)
它仍然比使用
pd.lib.fast\u-zip
更快 这有点像多列分解:我想我更喜欢你先前的答案。这一个会混淆“AB”,“C”和“A”,“BC”。是的,很好。我把太多的注意力放在了呈现的数据上。我已经更新了答案。