技术求助:如何将日期格式01oct2012转换为01-10-2012?
解决pandas特殊日期格式转换问题
针对01oct2012这类带缩写月份的日期格式,用pd.to_datetime可以精准处理,关键是指定匹配的格式参数,以下是可行代码:
import pandas as pd # 模拟你的数据结构 df = pd.DataFrame({'原始日期': ['01oct2012', '25mar2024', '10jul2020']}) # 转换为datetime类型再格式化目标字符串 df['转换后日期'] = pd.to_datetime(df['原始日期'], format='%d%b%Y').dt.strftime('%d-%m-%Y')
参数说明:
format='%d%b%Y':匹配输入格式,%d对应两位日,%b对应英文月份缩写(不区分大小写),%Y对应四位年份.dt.strftime('%d-%m-%Y'):将datetime对象转为你需要的日-月-年字符串格式
如果存在无法解析的异常日期,可添加errors='coerce'参数将其转为NaT(便于后续排查):
df['转换后日期'] = pd.to_datetime(df['原始日期'], format='%d%b%Y', errors='coerce').dt.strftime('%d-%m-%Y')
内容的提问来源于stack exchange,提问作者GobrielCotton
相关产品推荐
相关产品推荐

