我有很多列的DataFrame,我想根据其总值对列进行排序,换句话说,第一列将具有最高值,所以
A B C D E F G L
Date
2010-01-01 0 10 0 0 950 0 40 0
2010-03-01 0 0 0 0 1040 0 0 0
2010-04-01 0 0 0 0 261 0 0 0
2010-05-01 40 10 0 0 207 0 0 300
2010-06-01 0 0 0 0 108 0 0 0
2010-07-01 0 0 0 13 137 0 50 0
2010-08-01 0 10 10 0 0 0 0 0
2010-10-01 0 0 0 0 97 40 40 0
答案 0 :(得分:2)
如果我理解你想要的东西(示例输出总是一个好主意),一种方法是对列进行求和,对结果序列进行排序,并使用它来索引到帧中:
>>> colsum = df.sum()
>>> colsum.sort(ascending=False)
>>> df.loc[:, colsum.index]
E L G F A B D C
Date
2010-01-01 950 0 40 0 0 10 0 0
2010-03-01 1040 0 0 0 0 0 0 0
2010-04-01 261 0 0 0 0 0 0 0
2010-05-01 207 300 0 0 40 10 0 0
2010-06-01 108 0 0 0 0 0 0 0
2010-07-01 137 0 50 0 0 0 13 0
2010-08-01 0 0 0 0 0 10 0 10
2010-10-01 97 0 40 40 0 0 0 0