【问题标题】:Sorting column by a groupby按 groupby 对列进行排序
【发布时间】:2017-08-10 19:26:15
【问题描述】:

大家好,我有以下数据框:

     a                 LC_REF
5 Warranty Tsunami      1C17
6 10.1                  1C17
7 5.2                   1C17
...
5 Warranty Medium       1C17
6 9.1                   1C17
7 6.3                   1C17
...
5 Warranty Medium       2C17
6 4.2                   2C17
7 3.1                   2C17
...
5 Warranty High         2C17 
6 2.1                   2C17
7 0.5                   2C17

我正在尝试按 LC_REF 对它们进行排序,同时保持索引顺序:

     a                 LC_REF
5 Warranty Medium       2C17
6 4.2                   2C17
7 3.1                   2C17
...
5 Warranty High         2C17
6 2.1                   2C17
7 0.5                   2C17
...
5 Warranty Tsunami      1C17
6 10.1                  1C17
7 5.2                   1C17
...
5 Warranty Medium       1C17 
6 9.1                   1C17
7 6.3                   1C17

但是当我尝试时:

df.sort_values('LC_REF') 

我得到了一个非常乱序的数据框。有什么方法可以在保持它们所在顺序的同时按 LC_REF 排序?

【问题讨论】:

    标签: python python-3.x pandas dataframe


    【解决方案1】:

    看来你需要:

    df.sort_values(['LC_REF'], ascending=False)
    

    更通用的解决方案 - 第一个 reset_index 用于原始索引值,第二个 reset_index 用于原始顺序,然后按 2 列排序:

    df = df.reset_index()
           .reset_index()
           .sort_values(['LC_REF', 'level_0'], ascending=[False, True])
           .set_index('index')
           .drop('level_0', 1)
    print (df)
                          a LC_REF
    index                         
    5       Warranty Medium   2C17
    6                   4.2   2C17
    7                   3.1   2C17
    5         Warranty High   2C17
    6                   2.1   2C17
    7                   0.5   2C17
    5      Warranty Tsunami   1C17
    6                  10.1   1C17
    7                   5.2   1C17
    5       Warranty Medium   1C17
    6                   9.1   1C17
    7                   6.3   1C17
    

    【讨论】:

      猜你喜欢
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-23
      • 2011-01-07
      • 1970-01-01
      • 2019-08-23
      • 1970-01-01
      相关资源
      最近更新 更多