繁体   English   中英

Python:通过升序重新排列DataFrame中的列顺序

[英]Python: Rearrange column order in DataFrame by ascending values

我的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(sorted(df.columns),axis = 1)

但不适用于数字。

干得好:

df.rename(columns=int).sort(axis=1)

rename需要函数进行转换。

您可以将它们转换为整数,然后进行排序。

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()]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM