这个问题与使用列名按字母顺序排序无关,问题陈述是根据数据帧内的值以某种顺序对列进行重新排序,该顺序是按行降序的
我有以下数据框,
JSWINFRA GUFICBIO HARIOMPIPE
3 4 4
1 3 3
0 0 1
4 1 0
我希望它像下面这样排序,
注意:我不能使用 df.sort_values(by='column_name') 因为列是从 API 动态生成的
HARIOMPIPE GUFICBIO JSWINFRA
4 4 3
3 3 1
1 0 0
0 1 4
我怎样才能通过pandas做到这一点?
np.lexsort
获取列的排序顺序,并使用 iloc
重新排序:
df.iloc[:,np.lexsort(-df.to_numpy()[::-1])]
输出:
HARIOMPIPE GUFICBIO JSWINFRA
0 4 4 3
1 3 3 1
2 1 0 0
3 0 1 `