首页 > 解决方案 > 如何对数据透视图中的列值进行排序

问题描述

我已经使用这些代码行从数据框创建了一个数据透视表:

df_multi_level = pd.pivot_table(df_raw_final, values=['weight'], index=['mb_assetclass', 'mb_categoriastrumento', 'asset_Name'], aggfunc=np.sum)

df_multi_level = df_multi_level.sort_values(by='mb_assetclass', ascending=False)

我有这个数据透视表:

在此处输入图像描述

我想将“权重”列的值从最大到最小排序,同时保留“mb_assetclass”和“mb_categoriastrumento”的分组(从最小到最大)

标签: pythonpandasdataframepivot-table

解决方案


您可以尝试重置索引,以在排序之前.reset_index()恢复以前设置为索引的列。pivot_table()

然后对多列进行排序,分别设置ascending=所需True/False值的参数,如下:

df_multi_level = df_multi_level.reset_index()

df_multi_level = df_multi_level.sort_values(['mb_assetclass', 'mb_categoriastrumento', 'weight'], ascending=[True, True, False])

推荐阅读