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

使用Pandas的to_datetime函数将月份名称转换为补零十进制数字

原因说明

你调用pd.to_datetime()得到的是完整的datetime类型对象,pandas会自动补全缺失的年(默认1900)和日(默认1号),所以不会直接返回月份数值。另外注意:数值类型的数字本身不支持前导零,所以补零格式的结果一定是字符串类型,如果后续需要参与数值计算,取1-12的整数类型即可。

简洁实现方法

方法1:基于日期对象直接格式化(最常用,代码量最少)

在你现有代码的基础上,调用datetime访问器的格式化方法即可,完全不需要正则:

# 得到补零的月份字符串(比如"01","02")
data['month_num'] = pd.to_datetime(data['month'], format='%B').dt.strftime('%m')

# 如果不需要补零,要1-12的整数类型,用下面这行
# data['month_num'] = pd.to_datetime(data['month'], format='%B').dt.month

方法2:映射表替换(性能更优,适合大数据量场景)

如果你的月份都是标准英文全称,可直接用预定义的字典做映射,省去日期转换的开销:

month_map = {
    'January': '01', 'February': '02', 'March': '03', 'April': '04',
    'May': '05', 'June': '06', 'July': '07', 'August': '08',
    'September': '09', 'October': '10', 'November': '11', 'December': '12'
}
data['month_num'] = data['month'].map(month_map)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:39:03