【问题标题】:Custom sorting multiple levels of column index in pandas自定义排序熊猫中的多级列索引
【发布时间】:2021-12-20 07:40:31
【问题描述】:

我有以下数据框:

保持 level2 的顺序(Checks、Check Avg、Checks、Check AVg 等)的最佳方法是什么,但按升序对父级别的日期进行排序?

【问题讨论】:

  • 什么是父级?

标签: python pandas sorting


【解决方案1】:

sort_remaining=False 添加到sort_index 以防止低于指定的排序级别:

df = df.sort_index(level=0, axis=1, sort_remaining=False)

df:

Week        2021-10-11           2021-10-18           2021-10-25          
                Checks Check Avg     Checks Check Avg     Checks Check Avg
11th Street          4         5          2         3          0         1
16th Street         10        11          8         9          6         7
Bala Cynwyd         16        17         14        15         12        13

使用的样本数据:

import numpy as np
import pandas as pd

df = pd.DataFrame(
    np.arange(18).reshape((-1, 6)),
    index=['11th Street', '16th Street', 'Bala Cynwyd'],
    columns=pd.MultiIndex.from_arrays(
        [np.repeat(pd.to_datetime(['2021-10-25', '2021-10-18', '2021-10-11']),
                   2),
         ['Checks', 'Check Avg'] * 3],
        names=['Week', None]
    )
)

df:

Week        2021-10-25           2021-10-18           2021-10-11          
                Checks Check Avg     Checks Check Avg     Checks Check Avg
11th Street          0         1          2         3          4         5
16th Street          6         7          8         9         10        11
Bala Cynwyd         12        13         14        15         16        17

【讨论】:

    【解决方案2】:

    您可以在axis=1 上使用sort_index。您可以指定每个级别的排序顺序。

    示例输入:

       a  b     c     a  c  b  a
       X  Y  Z  Y  X  Z  Z  X  Y
    0  -  -  -  -  -  -  -  -  -
    

    排序:

    df = df.sort_index(level=[0,1], ascending=[True, False], axis=1)
    

    输出:

       a        b        c      
       Z  Y  X  Z  Y  X  Z  Y  X
    0  -  -  -  -  -  -  -  -  -
    

    【讨论】:

      猜你喜欢
      • 2017-08-21
      • 2017-03-17
      • 2014-06-22
      • 1970-01-01
      • 2020-10-10
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 2023-04-02
      相关资源
      最近更新 更多