Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数据帧中的组编号_Python_Pandas - Fatal编程技术网

Python 数据帧中的组编号

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

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       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”。是的,很好。我把太多的注意力放在了呈现的数据上。我已经更新了答案。