根据底行中的值对数据框列的顺序进行排序

Posted

技术标签:

【中文标题】根据底行中的值对数据框列的顺序进行排序【英文标题】:Sort the order of dataframe columns based on the values in the bottom row 【发布时间】:2019-01-18 16:18:42 【问题描述】:

我试过了,但它不起作用:

df5[[c for c in sorted(list(df5.columns), key=df5.iloc[-1].get, reverse=True)]]

【问题讨论】:

How to Ask 请参阅如何制作MCVE。在这种情况下,我想我已经根据您的示例代码理解了您在寻找什么,并希望我能回答它。我试图澄清标题。 【参考方案1】:

你很亲密。试试这个:

import pandas as pd

df = pd.DataFrame('a': [1, 2, 3], 'b': [ 4, 5, 2], 'c': [2, 4, 5])
print(df)

df = df[[x for _, x in sorted(zip(df.iloc[-1], df.columns), reverse=True)]]
print(df)

开始数据帧:

   a  b  c
0  1  4  2
1  2  5  4
2  3  2  5

按底行中的值降序排列的列:

  c  a  b
0  2  1  4
1  4  2  5
2  5  3  2

【讨论】:

【参考方案2】:

试试这个:

import pandas as pd
data = pd.read_csv('your_data_file')
sort_column = data.sort_values('name_of_column',ascending=False)
print(sort_column)

【讨论】:

以上是关于根据底行中的值对数据框列的顺序进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何根据列的值对熊猫数据框中的列进行分类?

如何根据列的值对观察值重新编号[重复]

有没有办法根据熊猫中的唯一值对列进行排序?

根据另一列的值过滤数据框列[重复]

如何在 Pandas 数据框中按行值对日期时间列进行排序?

使用x-editable更新行中的值后jquery数据表未排序