如何用Python或Pandas将CSV中的月份缩写转换为全称?
将CSV中的月份缩写转换为完整名称(Pandas实现)
方法一:利用Pandas的日期转换功能
你的代码出错是因为strftime是datetime对象的方法,而你的Month列是字符串类型,无法直接调用。需要先把字符串转成datetime,再提取完整月份名:
import pandas as pd # 读取CSV文件 df = pd.read_csv("your_file.csv") # 将月份缩写转为datetime,再提取完整月份名称 df["Month"] = pd.to_datetime(df["Month"], format="%b").dt.month_name()
format="%b":指定输入的是英文月份缩写(如Jan、Feb)dt.month_name():直接返回对应的完整英文月份名(如January、February)
也可以用dt.strftime("%B")替代month_name(),效果完全一致:
df["Month"] = pd.to_datetime(df["Month"], format="%b").dt.strftime("%B")
方法二:自定义字典映射
如果你的月份缩写是非标准格式,或者需要自定义对应关系,直接用字典映射更灵活:
month_mapping = { "Jan": "January", "Feb": "February", "Mar": "March", "Apr": "April", "May": "May", "Jun": "June", "Jul": "July", "Aug": "August", "Sep": "September", "Oct": "October", "Nov": "November", "Dec": "December" } df["Month"] = df["Month"].map(month_mapping)
这种方法不需要依赖日期转换,直接通过键值对完成替换,适合特殊场景。
内容的提问来源于stack exchange,提问作者Vicky12345
相关产品推荐
相关产品推荐

