如何将Pandas月份列通过自定义函数转换为法语全称
解决方案
1. 确认自定义转换函数的有效性
如果你的changeMonth函数还未完善,推荐基于字典映射实现(无需依赖locale模块),示例如下:
def changeMonth(month_abbr): # 英文月份缩写 -> 法语全称的映射表 month_translation = { 'Jan': 'Janvier', 'Feb': 'Février', 'Mar': 'Mars', 'Apr': 'Avril', 'May': 'Mai', 'Jun': 'Juin', 'Jul': 'Juillet', 'Aug': 'Août', 'Sep': 'Septembre', 'Oct': 'Octobre', 'Nov': 'Novembre', 'Dec': 'Décembre' } # 匹配返回对应法语名,无匹配则返回原值(可替换为pd.NA处理异常) return month_translation.get(month_abbr, month_abbr)
2. 将函数应用到Pandas列
直接使用Pandas的apply()方法,将自定义函数批量作用于df["month"]列,可选择生成新列或覆盖原列:
import pandas as pd # 示例DataFrame(模拟你的数据) df = pd.DataFrame({"month": ["Jan", "Feb", "Mar", "Oct", "Dec"]}) # 生成新列存储法语月份 df["month_french"] = df["month"].apply(changeMonth) # 若需覆盖原列,执行: # df["month"] = df["month"].apply(changeMonth) # 查看结果 print(df)
执行后输出示例:
month month_french 0 Jan Janvier 1 Feb Février 2 Mar Mars 3 Oct Octobre 4 Dec Décembre
注意事项
- 若
df["month"]中存在缺失值或不匹配的缩写,get()方法会返回原输入值;如需标记异常值,可将返回默认值改为pd.NA - 确保映射表覆盖所有可能出现的英文月份缩写(如区分
Sep/Sept这类不同缩写场景)
内容的提问来源于stack exchange,提问作者user29295031
相关产品推荐
相关产品推荐

