python - 如何对数据透视图中的列值进行排序
问题描述
我已经使用这些代码行从数据框创建了一个数据透视表:
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”的分组(从最小到最大)
解决方案
您可以尝试重置索引,以在排序之前.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])