重新排列pandas DataFrame的列,以便首先获得总数最高的列

时间:2016-06-22 20:44:46

标签: python pandas

我有这个DataFrame:

df = pd.DataFrame({'c1':[1,2,3,4]
                       ,'c2':[2,4,5,6]
                       ,'c3':[5,7,9,10]
                       ,'c4':[-1,3,1,0]
                       ,'c5':[100,1000,1,2]})
df

    c1  c2  c3  c4  c5
0   1   2   5   -1  100
1   2   4   7   3   1000
2   3   5   9   1   1
3   4   6   10  0   2

我不知道该怎么做才能快速对列进行排序,以便首先得到总c5最高的列,然后是c3,c2,c1和c4:

    c1  c2  c3  c4  c5
0   1   2   5   -1  100
1   2   4   7   3   1000
2   3   5   9   1   1
3   4   6   10  0   2

那么是否有一个产生以下结果的命令(没有对列名进行硬编码)?

df[['c5', 'c3', 'c2', 'c1' , 'c4']]

    c5  c3  c2  c1  c4
0   100     5   2   1   -1
1   1000    7   4   2   3
2   1   9   5   3   1
3   2   10  6   4   0

1 个答案:

答案 0 :(得分:3)

为这个微不足道的问题道歉 - 这比我想象的容易:

df[df.sum().sort_values(ascending = False).index]