当前位置: 首页 > 知识库问答 >
问题:

根据列名对数据框中的列进行排序[重复]

隗翰海
2023-03-14

我有一个dataframe,有200多列。问题在于订单生成时

['Q1.3','Q6.1','Q1.2','Q1.1',......]

我需要对这些列进行如下排序:

['Q1.1','Q1.2','Q1.3',.....'Q6.1',......]

我有办法在Python中做到这一点吗?

共有3个答案

雍志文
2023-03-14

你可以这样做:

df[sorted(df.columns)]

编辑:较短的是

df[sorted(df)]
景建业
2023-03-14

你也可以做得更简洁:

df.sort_index(axis=1)

确保将结果分配回:

df = df.sort_index(axis=1)

或者,在适当的地方进行:

df.sort_index(axis=1, inplace=True)
费德宇
2023-03-14
df = df.reindex(sorted(df.columns), axis=1)

这假设对列名进行排序会给出您想要的顺序。如果您的列名不能按字典顺序排序(例如,如果您希望列Q10.3出现在Q9.1之后),您需要进行不同的排序,但这与熊猫无关。

 类似资料:
  • 我有一个像这样的数据框- 我有一个这样的列表- 现在,我想根据列名列表对数据框进行排序 因此,新的数据框将有列名称-

  • 问题内容: 我想对以下数据框进行排序: 我想对它进行排序,以便根据列表对LSE列进行重新排序: 当然,其他列也需要相应地重新排序。有没有办法在熊猫里做到这一点? 问题答案: pandas0.15版中对s的改进支持使您可以轻松做到这一点: 如果这只是临时排序,则可能不希望将LSE列保留为a ,但是如果您希望这种排序能够在不同的上下文中使用几次,则是一个很好的解决方案。 在更高版本的,中,已被替换为,

  • 编辑:对于同样的问题,我尝试编写一个比较器。但它不起作用

  • 我得到了这个数据帧,我想根据一些列名分配一个值。像这样。loc[df['max_speed']==1,df['shield']==2,new]=10然后我将获得新的数据帧: 有人知道怎么做吗?

  • 问题内容: 我有一个具有以下内容的Series对象: 问题陈述: 我想按月显示它,并计算每个月的平均价格,然后按月以排序的方式显示它。 所需输出: 我想到了制作列表并将其传递给sort函数的方法: 但是 sort_values 不支持序列化。 我有一个大问题是,即使 最初可以工作,但是在我做完之后,它并不能保持排序后的顺序。 总而言之,我需要从初始数据帧起这两列。对datetime列进行排序,并使

  • 我有一个超过200列的。问题在于订单生成时的状态 我需要按如下方式重新排列这些列: 在Python中有什么方法可以做到这一点吗?