我的DataFrame列是:
df.columns
>>>Index([u'1', u'10', u'120', u'1800', u'30', u'300', u'3600', u'5', u'60', u'600'], dtype='object')
我如何对列进行排序,以便我有一个像1, 5, 10, 30, 60, 120, 300, 600, 1800, 3600
这样的升序序列?
我试过这个:
df = df.reindex_axis(已排序(df.columns),轴= 1)
但不适用于数字。
答案 0 :(得分:4)
你走了:
df.rename(columns=int).sort(axis=1)
rename
期望转换的函数。
答案 1 :(得分:2)
您可以将它们转换为整数,然后排序。
In [16]: idx = df.columns
In [17]: df.columns = idx.astype(int)
In [18]: idx.order()
Out[18]: Int64Index([1, 5, 10, 30, 60, 120, 300, 600, 1800, 3600], dtype='int64')
您需要将数据框的列设置为int版本。然后拨打df = df[idx.order()]
。