python - Pandas - 度假村柱位置

标签 python pandas

我有一个 Pandas 框架。当我打印列(如下所示)时,结果发现我的列乱序。有没有办法只对前 30 列进行排序,以便它们按顺序排列 (30,60,90...900)?

[in]   df.columns

[out]  Index(['120', '150', '180', '210', '240', '270', '30', '300', '330', '360',
   '390', '420', '450', '480', '510', '540', '570', '60', '600', '630',
   '660', '690', '720', '750', '780', '810', '840', '870', '90', '900',
   'Item', 'Price', 'Size', 'Time', 'Type', 'Unnamed: 0'],
  dtype='object')

固定框架如下:

[out]  Index(['30','60','90,'120', '150', '180', '210', '240', '270','300', '330', '360',
   '390', '420', '450', '480', '510', '540', '570','600', '630',
   '660', '690', '720', '750', '780', '810', '840', '870','900',
   'Item', 'Price', 'Size', 'Time', 'Type', 'Unnamed: 0'],
  dtype='object')

最佳答案

如果您知道列将以 30 的倍数命名为 30 到 900,则可以像这样显式生成:

c = [str(i) for i in range(30, 901, 30)]

然后将其添加到其他列:

c = c + ['Item', 'Price', 'Size', 'Time', 'Type', 'Unnamed: 0']

然后您应该能够以 df[c] 的形式访问它

关于python - Pandas - 度假村柱位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44404883/

相关文章:

python - 将多个字典作为参数传递给函数

python - 如何在 Pandas 数据框中找到每天的第一个和最后一个值

python - Pandas 是否在加载下一个 block 后从内存中释放最后一个 block ?

python - vtkSplineRepresentation 的 Actor ()

python - 如何将DataFrame列收集到键值对中作为python中的行

python - 对行匹配条件的列子集进行排序

python - pandas 基于日期索引的时间序列识别值

python - 在 python Flask/Gevent Web 服务中缓存大对象

python ,scikits-学习 : which learning methods support sparse feature vectors?

python - django 导入_导出 |数据未从数据库导出