Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Pandas 基于索引中整数重复集的数据帧重排序_Pandas_Sorting - Fatal编程技术网

Pandas 基于索引中整数重复集的数据帧重排序

Pandas 基于索引中整数重复集的数据帧重排序,pandas,sorting,Pandas,Sorting,我有一个包含一些列的数据框,我没有找到按如下方式排列行的方法: 我需要按字段标签顺序排列数据帧(如组) 输入 所需订单: I category tags 0 C #29-106 1 B #25-74 2 F #18-109 3 C #26-86 0 B #29-93 1 D #26-170 2 B #26-108 3 B #28-145 0 C #21-102 1 D #28-145 2 A #30-125

我有一个包含一些列的数据框,我没有找到按如下方式排列行的方法:

我需要按字段
标签
顺序排列数据帧(如组)

输入 所需订单:

I category  tags
0   C   #29-106
1   B   #25-74
2   F   #18-109
3   C   #26-86
0   B   #29-93
1   D   #26-170
2   B   #26-108
3   B   #28-145
0   C   #21-102
1   D   #28-145
2   A   #30-125
3   A   #29-93
0   B   #21-102
1   A   #26-108
2   C   #30-125

我已经搜索了不同的排序方法,但无法找到仅使用熊猫进行排序的方法。
我感谢你的帮助

一个想法和助手栏,由和:

或者首先按列排序,然后使用和更改顺序:

I category  tags
0   C   #29-106
1   B   #25-74
2   F   #18-109
3   C   #26-86
0   B   #29-93
1   D   #26-170
2   B   #26-108
3   B   #28-145
0   C   #21-102
1   D   #28-145
2   A   #30-125
3   A   #29-93
0   B   #21-102
1   A   #26-108
2   C   #30-125
df['a'] = df.groupby('I').cumcount()

df = df.sort_values(['a','I'])
print (df)
    I category     tags  a
2   0        C  #29-106  0
0   1        A   #25-74  0
3   2        A  #18-109  0
4   3        B   #26-86  0
8   0        B   #29-93  1
1   1        B  #26-170  1
5   2        A  #26-108  1
12  3        A  #28-145  1
9   0        D  #21-102  2
7   1        B  #28-145  2
6   2        C  #30-125  2
13  3        D   #29-93  2
14  0        B  #21-102  3
10  1        F  #26-108  3
11  2        F  #30-125  3
df = df.sort_values('I')
df = df.iloc[df.groupby('I').cumcount().argsort()]
print (df)
    I category     tags
2   0        C  #29-106
0   1        A   #25-74
3   2        A  #18-109
4   3        B   #26-86
8   0        B   #29-93
1   1        B  #26-170
5   2        A  #26-108
12  3        A  #28-145
9   0        D  #21-102
7   1        B  #28-145
6   2        C  #30-125
13  3        D   #29-93
14  0        B  #21-102
10  1        F  #26-108
11  2        F  #30-125