繁体   English   中英

Python 如何对 Dataframe 中的多索引列进行不同级别的排序?

[英]Python How to sort multi index Columns in Dataframe at different levels?

我正在尝试对 dataframe df 级别 1 的多索引列进行排序

            |05/12/2020                 |05/13/2020
Created By  |Accuracy   Achieved %      |Accuracy   Achieved %
------------------------------------------------------------------
John        |  90        105            |   85       105

我想将级别 1 中的列排序为已实现百分比和准确度,而不是准确度和已实现百分比

有没有办法做到这一点?

找到了答案:)

使用 sort_index

pivot = pivot.sort_index(level=1, axis=1, sort_remaining=False, ascending=False) pivot = pivot.sort_index(level=0, axis=1, sort_remaining=False, ascending=True)

文档: https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.DataFrame.sortlevel.ZFC35FDC70D5FC69D2539883A8EZ7C

谢谢

假设您的 DataFrame 位于df中,您可以使用以下单个指令执行此操作:

df = df.reindex(columns=df.columns.sortlevel([0, 1],ascending=[True, False])[0])

您可以指定排序级别和顺序(对于给定的级别),将列表作为各自的参数传递。

需要尾随[0] ,因为sortlevel返回一个元组(sorted_index, indexer) ,但我们只需要排序索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM