Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.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,我想以与此问题类似的方式对数据帧进行排序: 然而,我遇到的一个问题是,计数不能保证是唯一的,在这种情况下,行将被交错(我使用EdChum在上述问题中建议的方法) 给定以下数据帧: cluster_id,distance,url 1,0.15,aaa.com 1,0.25,bbb.com 2,0.05,ccc.com 2,0.10,ccc.com 7,0.1,abc.com 7,0.2,def.com 7,0.3,xyz.com 之后,我希望它是: cluster_id,distance,ur

我想以与此问题类似的方式对数据帧进行排序:

然而,我遇到的一个问题是,计数不能保证是唯一的,在这种情况下,行将被交错(我使用EdChum在上述问题中建议的方法)

给定以下数据帧:

cluster_id,distance,url
1,0.15,aaa.com
1,0.25,bbb.com
2,0.05,ccc.com
2,0.10,ccc.com
7,0.1,abc.com
7,0.2,def.com
7,0.3,xyz.com
之后,我希望它是:

cluster_id,distance,url
7,0.1,abc.com
7,0.2,def.com
7,0.3,xyz.com
1,0.15,aaa.com
1,0.25,bbb.com
2,0.05,ccc.com
2,0.10,ccc.com

请注意,列cluster\u id和distance仍然按顺序排列,在按出现的“cluster\u id”排序后,我们可以按
cluster\u id和新列“G”排序:

df.assign(G=df.groupby('cluster_id').cluster_id.transform('count')).sort_values(['G','cluster_id'],ascending=[False,True]).drop('G',1)
Out[248]: 
   cluster_id  distance      url
4           7      0.10  abc.com
5           7      0.20  def.com
6           7      0.30  xyz.com
0           1      0.15  aaa.com
1           1      0.25  bbb.com
2           2      0.05  ccc.com
3           2      0.10  ccc.com

我们可以按
集群id
和新列“G”进行排序:

df.assign(G=df.groupby('cluster_id').cluster_id.transform('count')).sort_values(['G','cluster_id'],ascending=[False,True]).drop('G',1)
Out[248]: 
   cluster_id  distance      url
4           7      0.10  abc.com
5           7      0.20  def.com
6           7      0.30  xyz.com
0           1      0.15  aaa.com
1           1      0.25  bbb.com
2           2      0.05  ccc.com
3           2      0.10  ccc.com

这是按任何列排序的吗?(哦,对不起,我读错了!)@JoseA。我不太明白你的意思。在排序后,我希望列cluster\u id和distance仍然是有序的,在按“cluster\u id”的出现进行排序后是的,很抱歉我错读了问题。是否在任何列中排序?(哦,对不起,我读错了!)@JoseA。我不太明白你的意思。在排序后,我希望列cluster\u id和distance仍然是有序的,在按“cluster\u id”的出现进行排序后是的,很抱歉我错读了问题。什么是新的列G?发生次数?@clwen此处
G=df.groupby('cluster\u id')。cluster\u id.transform('count')
,发生次数是否稳定?我不太清楚。无论如何,我不知道这是OP的观点还是我(再次)误读了它。找到了另一种方式:-)G列是什么?发生次数?@clwen此处
G=df.groupby('cluster\u id')。cluster\u id.transform('count')
,发生次数是否稳定?我不太清楚。无论如何,我不知道这是OP的观点还是我(再次)读错了。找到了另一种方式:-)