首页 > 解决方案 > Python:如何强制熊猫对数据集中的列进行排序?

问题描述

我有以下数据集

df = pd.DataFrame({2002:[None, None, 2, 4, 5],  
                   "Facility":[5, 5, 6, 44, 2], 
                   2003:[None, None, None, 1, 5], 
                   2004 : [ 4,4,3,2,6]})

我需要对列进行排序,为此我使用以下代码

df = df.reindex(sorted(df.columns), axis=1)

但是它抱怨以下错误:

TypeError: '<' not supported between instances of 'str' and 'int'

我知道出现错误是因为 col 名称之一是 str 类型,但我该如何解决这个问题?

我最喜欢的答案有如下排序的列:

'Facility',2002,2003,2004

标签: pythonpandassortingdataset

解决方案


你快到了。

正如您已经提到的,您的 colnames 是 String 和 int 的组合,因此排序不成功。因此,您可以执行以下操作对列进行排序

df.columns.astype(str)

推荐阅读