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

如何将DataFrame列中的mmm-yy格式值转换为datetime类型

将mmm-yy格式的日期列转换为datetime类型

在pandas里处理这种格式的日期非常直接,核心是用pd.to_datetime()函数并指定匹配的格式字符串:

基础转换代码

假设你的DataFrame是df,目标日期列名为month_year:

import pandas as pd

# 示例数据
df = pd.DataFrame({'month_year': ['feb-20', 'mar-20', 'oct-21', 'jan-99']})

# 转换列类型
df['month_year'] = pd.to_datetime(df['month_year'], format='%b-%y')

关键细节说明

  • %b 用于匹配缩写的月份名称(如feb对应二月),这个格式默认对大小写敏感。如果你的数据里有大写月份(比如FEB-20),可以添加case=False参数忽略大小写:
    df['month_year'] = pd.to_datetime(df['month_year'], format='%b-%y', case=False)
    
  • %y 匹配2位数年份,pandas默认的映射规则是:00-69 → 2000-2069,70-99 → 1970-1999。如果需要自定义世纪规则(比如把所有2位数年份都映射到2000年后),可以用自定义函数处理:
    from datetime import datetime
    
    def parse_custom_year(date_str):
        dt = datetime.strptime(date_str, '%b-%y')
        # 强制将所有2位数年份转为20xx
        dt = dt.replace(year=dt.year + 2000 if dt.year < 100 else dt.year)
        return dt
    
    df['month_year'] = df['month_year'].apply(parse_custom_year)
    

转换完成后,你可以用df.dtypes查看列类型,确认已经转为datetime64[ns]类型,后续就能正常使用日期筛选、计算等操作了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:05:25