首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在自动生成报告时对pandas数据帧中的列进行排序

在自动生成报告时对pandas数据帧中的列进行排序
EN

Stack Overflow用户
提问于 2020-06-16 19:34:53
回答 1查看 32关注 0票数 0

我正在处理一项自动化任务,我的数据框列如下所示

代码语言:javascript
运行
复制
Defined Discharge Bin   Apr-20  Jan-20  Mar-20  May-20  Grand Total
2-4 min                                             1       1
4-6 min                            5                1       6
6-8 min                            5      7         2       14

我想从1月20日开始对列进行排序。这里的问题是列会自动按照字母顺序排序。排序可以手动完成,但由于我正在处理一项自动化任务,因此我需要确保每个月当我们提供数据时,列应该根据一年中的月份自动排序。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-16 20:40:05

试试这个:

代码语言:javascript
运行
复制
import pandas as pd


df = pd.DataFrame(data={'Defined Discharge Bin':['2-4 min', '4-6 min','6-8 min'], 'Apr-20':['', '', ''], 'Jan-20':['', 5, 5], 'Mar-20':['', '', 7], 'May-20':[1, 1, 2], 'Grand Total':[1, 6, 14]})
cols_exclude = ['Defined Discharge Bin', 'Grand Total']
cols_date = [c for c in df.columns.tolist() if c not in cols_exclude]
cols_sorted = sorted(cols_date, key=lambda x: pd.to_datetime(x, format='%b-%y'))
df = df[cols_exclude[0:1] + cols_sorted + cols_exclude[-1:]]
print(df)

输出:

代码语言:javascript
运行
复制
  Defined Discharge Bin Jan-20 Mar-20 Apr-20  May-20  Grand Total
0               2-4 min                            1            1
1               4-6 min      5                     1            6
2               6-8 min      5      7              2           14
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62407505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档