Panda Pivot - 按列排序

Lau*_*ker 2 python pivot pandas

我有一个来自熊猫数据透视表的数据:

df:
    sum
    PrctChange
    Year        2011        2012        2013        2014        2015
    CountryName                 
    Argentina   17.378744   5.750719    7.923327    -0.062792   8.889681
    Belize      0.515086    -1.278683   16.819298   -0.104759   10.539688
    Burundi     0.000000    inf         3.209646    2.165577    6.411365
Run Code Online (Sandbox Code Playgroud)

我正在尝试按 2015 年的数据对其进行排序,以便将其列为伯利兹、阿根廷和布隆迪(2015 年的值按降序排列)

我看过一些非常相关和类似的问题,但它们似乎对我不起作用

从这个问题,我试过:

pivot_sorted = df_values(('PrctChange', 2015))
Run Code Online (Sandbox Code Playgroud)

并收到此错误:

KeyError: ('PrctChange', 2015)
Run Code Online (Sandbox Code Playgroud)

从这个问题,我试过:

pivot_sorted = df.sortlevel(["2015"], ascending=[False], sort_remaining=False)
Run Code Online (Sandbox Code Playgroud)

我没有收到错误,但没有排序。

最后,我试过这个

pivot_sorted = df.sort_values(by=(df['2015']), ascending=False,inplace=True)
Run Code Online (Sandbox Code Playgroud)

并收到此错误:

KeyError: '2015'
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?谢谢!

Ted*_*rou 5

这些列是一个三级 MultiIndex 对象。您必须使用所有三个级别来选择一列。

df.sort_values(('sum', 'PrctChange', '2015'), ascending=False)
Run Code Online (Sandbox Code Playgroud)