【问题标题】:Sorting a pandas DataFrame by one level of a MultiIndex按一级 MultiIndex 对 pandas DataFrame 进行排序
【发布时间】:2016-12-01 15:49:09
【问题描述】:

我有一个 MultiIndexed pandas DataFrame,需要由其中一个索引器进行排序。这是数据的sn-p:

gene                      VIM  
treatment dose time            
TGFb      0.1  2    -0.158406  
          1    2     0.039158  
          10   2    -0.052608  
          0.1  24    0.157153  
          1    24    0.206030  
          10   24    0.132580  
          0.1  48   -0.144209  
          1    48   -0.093910  
          10   48   -0.166819  
          0.1  6     0.097548  
          1    6     0.026664  
          10   6    -0.008032  

我希望对数据进行排序,以便时间索引按升序排列。我的第一个想法是使用pandas.sort_values,但这似乎不适用于索引。有人知道这样做的方法吗?谢谢

【问题讨论】:

    标签: python sorting pandas dataframe multi-index


    【解决方案1】:

    使用sort_index 指定level

    df.sort_index(level=2)
    

    或者

    df.sort_index(level=-1)
    

    或者

    df.sort_index(level='time')
    

    所有产量:

    【讨论】:

    • 对于我的情况,我发现我需要添加 sort_remaining=False 以保留后续级别的顺序(在 OP 的情况下,想象在您想要保留其顺序的 time 之后有另一个索引列)
    猜你喜欢
    • 2018-08-22
    • 2017-10-16
    • 1970-01-01
    • 2014-05-24
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    相关资源
    最近更新 更多