Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.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对组间而非组内进行排序(重新排列分组行,但在groupby之前保持原始行顺序)_Python_Pandas - Fatal编程技术网

Python对组间而非组内进行排序(重新排列分组行,但在groupby之前保持原始行顺序)

Python对组间而非组内进行排序(重新排列分组行,但在groupby之前保持原始行顺序),python,pandas,Python,Pandas,我希望根据列对行组进行排序(在我的示例中,“Group”是要分组的列,然后对组进行排序(按组行顺序进行维护)。我无法按索引排序,因为由于前面的操作,索引故意无序 df = pd.DataFrame({ 'Group':[5,5,5,9,9,777,777,1,2,2], 'V1':['a','b','a',3,6,1,None,10,3,None], 'V2':['blah','blah','blah','dog','cat','cat','na','first',

我希望根据列对行组进行排序(在我的示例中,“Group”是要分组的列,然后对组进行排序(按组行顺序进行维护)。我无法按索引排序,因为由于前面的操作,索引故意无序

df = pd.DataFrame({
    'Group':[5,5,5,9,9,777,777,1,2,2],  
    'V1':['a','b','a',3,6,1,None,10,3,None], 
    'V2':['blah','blah','blah','dog','cat','cat','na','first','last','nada'],
    'V3':[1,2,3,4,5,5,4,3,2,1,]
})

希望它看起来像这样:


我试过各种方法,比如

df.groupby(['Group'])['Group']).aggregate({'min grp':'min'}).sort_values(by=['min grp'], ascending=True)

如果有帮助,原始的
df
是通过
pd.concat(数据帧列表)创建的
之后,当我按组对它们进行排序时,它还会根据索引对组内的行进行排序,这对我的特定问题不起作用。

如果我正确理解了您的问题,您不希望按分组,而是按列的值进行排序。
。您可以使用


您需要将
sort\u值
与选项
kind='mergesort'
一起使用

kind : {‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’
      Choice of sorting algorithm. See also ndarray.np.sort for more
      information. mergesort is the only stable algorithm. For DataFrames,
      this option is only applied when sorting on a single column or label.
当两个键相等的相同元素以与输入中相同的顺序出现时,排序算法称为
stable
。稳定排序列表包括:
插入排序、合并排序、冒泡排序、tim排序、计数排序

因此,您需要:

df = df.sort_values('Group', kind='mergesort')
在不使用
kind
调用
sort\u值时,它是默认的“快速排序”,并且
quicksort
不稳定

df = df.sort_values('Group', kind='mergesort')