导入CSV后使用pd.to_datetime转换日期出现格式不一致问题如何解决
你遇到的转换错误来自两个核心原因:一是原始日期字符串存在多余的前后缩进、空格等空白字符,二是pd.to_datetime默认的自动推断日期顺序逻辑,会把小于等于12的日期部分误识别为月份,导致日月顺序反转。
直接按照以下步骤处理即可:
- 先对日期列调用
str.strip()去除所有前后空白字符 - 调用
pd.to_datetime时明确指定原始日期的格式为%d/%m/%Y,明确告知pandas原始结构是「日/月/4位年」,避免自动推断出错
代码示例:
# 替换为你实际的日期列名 df['date_col'] = pd.to_datetime(df['date_col'].str.strip(), format='%d/%m/%Y') # 若最终需要输出为yyyy-mm-dd格式的字符串,可追加以下代码 df['date_col'] = df['date_col'].dt.strftime('%Y-%m-%d')
如果存在少量不符合格式的脏数据,可在pd.to_datetime中添加参数errors='coerce',将脏数据自动转为空值NaT,避免转换过程直接报错。
内容的提问来源于stack exchange,提问作者Dhakre1
相关产品推荐
相关产品推荐

