Python 熊猫:按两列分组,然后按第三列的值排序

Python 熊猫:按两列分组,然后按第三列的值排序,python,pandas,sorting,dataframe,pandas-groupby,Python,Pandas,Sorting,Dataframe,Pandas Groupby,我有以下几行: genre\u df.groupby(['release\u year','genres'])。投票\u average.mean() 这给了我以下信息: release_year genres 1960 Action 6.950000 Adventure 7.150000 Comedy 7.900000

我有以下几行:

genre\u df.groupby(['release\u year','genres'])。投票\u average.mean()

这给了我以下信息:

release_year  genres         
1960          Action             6.950000
              Adventure          7.150000
              Comedy             7.900000
              Drama              7.600000
              Fantasy            7.300000
              History            6.900000
              Horror             8.000000
              Romance            7.600000
              Science Fiction    7.300000
              Thriller           7.650000
              Western            7.000000
1961          Action             7.000000
              Adventure          6.800000
              Animation          6.600000
              Comedy             7.000000
              Crime              6.600000
              Drama              7.000000
              Family             6.600000
              History            6.700000
              Music              6.600000
              Romance            7.400000
              War                7.000000
...
我想看到的是df按发布年份和类型分组,但首先按最高平均投票率排序

又名:

如何实现这一点?

解决方案-首先创建一列
数据帧,然后:

对于较旧版本的熊猫,必须:

试试这个:

   genre_df = genre_df.reset_index()
   genre_df.sort_values(['vote_average'],ascending=False)
df = df.to_frame().sort_values(['release_year','vote_average'], ascending=[True, False])
print (df)
                              vote_average
release_year genres                       
1960         Horror                   8.00
             Comedy                   7.90
             Thriller                 7.65
             Drama                    7.60
             Romance                  7.60
             Fantasy                  7.30
             Science Fiction          7.30
             Adventure                7.15
             Western                  7.00
             Action                   6.95
             History                  6.90
1961         Romance                  7.40
             Action                   7.00
             Comedy                   7.00
             Drama                    7.00
             War                      7.00
             Adventure                6.80
             History                  6.70
             Animation                6.60
             Crime                    6.60
             Family                   6.60
             Music                    6.60
df = (df.reset_index()
       .sort_values(['release_year','vote_average'], ascending=[True, False])
       .set_index(['release_year','genres']))
   genre_df = genre_df.reset_index()
   genre_df.sort_values(['vote_average'],ascending=False)