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
Python 按多个列进行分层分组_Python_Sorting_Pandas_Multiple Columns_Multi Index - Fatal编程技术网

Python 按多个列进行分层分组

Python 按多个列进行分层分组,python,sorting,pandas,multiple-columns,multi-index,Python,Sorting,Pandas,Multiple Columns,Multi Index,我想按列'Number 3'和'Event'进行分组,并获得如下所示的所需结果。请注意,第一列是索引。我想将期望的结果保存到一个新的数据帧中 Number1 Event Number2 Number3 0 20 clouds 30 404 1 22 lightening 32 404 2 23 playing 33 405 3 25

我想按列'Number 3'和'Event'进行分组,并获得如下所示的所需结果。请注意,第一列是索引。我想将期望的结果保存到一个新的数据帧中

     Number1 Event        Number2  Number3
0      20    clouds        30        404
1      22    lightening    32        404
2      23    playing       33        405
3      25    clouds        35        410
4      24    sleeping      34        407
5      26    lightening    36        410
6      21    rain          31        404
7      27    rain          37        410


Derired Result:

Number3     Event          Number1   Number2
   404   0  clouds          20         30
         1  lightening      22         32
         6  rain            21         31
   405   2  playing         23         33
   410   3  clouds          25         35
         6  lightening      26         36
         7  rain            27         37
   407   4  sleeping        24         34
需要:

但是如果需要旧的
索引
也添加参数
append=True
,然后:

按编辑问题编辑:

加:


很抱歉,在我意识到没有得到想要的结果后,我不得不编辑表格。请帮助再次检查该表并进行评论。似乎您只需要对第一级索引进行排序,请参阅编辑后的答案。
df1 = df.set_index(['Number3', 'Event'])
print (df1)
                    Number1  Number2
Number3 Event                       
404     clouds           20       30
        lightening       21       31
        rain             22       32
405     playing          23       33
410     sun              24       34
420     clouds           25       35
        lightening       26       36
        rain             27       37
df1 = df.set_index(['Number3', 'Event'], append=True).swaplevel(0,1)
print (df1)
                      Number1  Number2
Number3   Event                       
404     0 clouds           20       30
        1 lightening       21       31
        2 rain             22       32
405     3 playing          23       33
410     4 sun              24       34
420     5 clouds           25       35
        6 lightening       26       36
        7 rain             27       37
df1 = df.set_index(['Number3', 'Event'], append=True)
        .swaplevel(0,1)
        .sort_index(level='Number3')
print (df1)
                      Number1  Number2
Number3   Event                       
404     0 clouds           20       30
        1 lightening       22       32
        6 rain             21       31
405     2 playing          23       33
407     4 sleeping         24       34
410     3 clouds           25       35
        5 lightening       26       36
        7 rain             27       37