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

如何在Pandas中将object类型年月索引转为datetime并排序?

将Pandas Object类型年月索引转换为Datetime并排序

先看你提供的原索引:

import pandas as pd

# 构造原索引
original_index = pd.Index(['Apr-20', 'Apr-21', 'Apr-22', 'Aug-20', 'Aug-21', 'Aug-22', 'Dec-20', 'Dec-21', 'Dec-22', 'Feb-21', 'Feb-22', 'Jan-21', 'Jan-22', 'Jan-23', 'Jul-20', 'Jul-21', 'Jul-22', 'Jun-20', 'Jun-21', 'Jun-22', 'Mar-20', 'Mar-21', 'Mar-22', 'May-20', 'May-21', 'May-22', 'Nov-20', 'Nov-21', 'Nov-22', 'Oct-20', 'Oct-21', 'Oct-22', 'Sep-20', 'Sep-21', 'Sep-22'], dtype='object', name='months')

转换并排序的具体操作:

  1. 转Datetime类型
    用pd.to_datetime()处理,指定格式为'%b-%y':其中%b匹配英文缩写月份(如Apr、Jan),%y匹配两位年份。如果系统默认语言不是英文,需额外指定locale='en_US'确保解析正确:
datetime_index = pd.to_datetime(original_index, format='%b-%y', locale='en_US')
  1. 排序索引
    直接调用sort_index()方法完成时间顺序排序:
sorted_datetime_index = datetime_index.sort_index()

完整代码示例

import pandas as pd

# 原索引
original_index = pd.Index(['Apr-20', 'Apr-21', 'Apr-22', 'Aug-20', 'Aug-21', 'Aug-22', 'Dec-20', 'Dec-21', 'Dec-22', 'Feb-21', 'Feb-22', 'Jan-21', 'Jan-22', 'Jan-23', 'Jul-20', 'Jul-21', 'Jul-22', 'Jun-20', 'Jun-21', 'Jun-22', 'Mar-20', 'Mar-21', 'Mar-22', 'May-20', 'May-21', 'May-22', 'Nov-20', 'Nov-21', 'Nov-22', 'Oct-20', 'Oct-21', 'Oct-22', 'Sep-20', 'Sep-21', 'Sep-22'], dtype='object', name='months')

# 转换为datetime类型
datetime_index = pd.to_datetime(original_index, format='%b-%y', locale='en_US')

# 排序
sorted_index = datetime_index.sort_index()

# 查看结果
print(sorted_index)

内容的提问来源于stack exchange,提问作者Abu Bakar Sayem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:45:32