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

如何用Python Lambda为DataFrame添加'Month_Year'日期列?

解决方法

问题分析

你之前的代码存在两个核心问题:

  1. 尝试对尚未创建的Month_Year列调用apply,会直接抛出KeyError
  2. 仅硬编码处理了Jan一种月份,既没有覆盖所有月份,也没有动态引用Year列的数值

正确实现方式

我们可以先定义一个月份缩写到数字的映射字典,再通过apply按行处理,结合Year和Month列生成目标格式的日期字符串:

# 定义月份缩写到两位数字的映射
month_map = {
    'Jan': '01',
    'Feb': '02',
    'Mar': '03',
    'Apr': '04',
    'May': '05',
    'Jun': '06',
    'Jul': '07',
    'Aug': '08',
    'Sep': '09',
    'Oct': '10',
    'Nov': '11',
    'Dec': '12'
}

# 按行生成Month_Year列
data['Month_Year'] = data.apply(lambda row: f"01-{month_map[row['Month']]}-{row['Year']}", axis=1)

说明

  • axis=1参数指定apply按行处理,这样lambda函数可以同时访问当前行的Year和Month值
  • 映射字典覆盖了所有月份的缩写,确保任意月份都能转换为对应的两位数字
  • 若你的Month列是月份全称(比如February),只需修改映射字典的键,例如'February': '02'即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:05:18