You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中pivot操作后如何对DataFrame除索引列外的月份列按序排列

解决思路

你之前的代码报错是因为sort_values是用于按列值对行排序的API,无法实现调整列顺序的需求,调整列顺序直接重组列名列表后重索引即可,具体实现如下:

代码实现

# 1. 拆分固定保留顺序的列和需要动态排序的月份列
fixed_cols = ['loc', 'dept']
month_cols = [col for col in df.columns if col not in fixed_cols]

# 2. 把月份字符串转为datetime对象作为排序依据,自动按时间升序排列
sorted_month_cols = sorted(month_cols, key=lambda x: pd.to_datetime(x, infer_datetime_format=True))

# 3. 重组列顺序并重新赋值
df = df[fixed_cols + sorted_month_cols]

方案说明

  • 完全动态适配:后续新增任意月份(如Sep21、Jan22等)都会自动按照时间先后排序,无需手动修改排序规则
  • 兼容性强:支持Jun21(短写月份)、July21(全写月份)等多种常见的月份+年份的字符串格式,无需额外做字符串预处理

内容的提问来源于stack exchange,提问作者RCN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 21:27:01