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

Python中多格式日期列清洗及标准化求助

解决多格式日期标准化问题

问题原因

你指定单一日期格式调用pd.to_datetime时,数据中存在多种日期格式(斜杠、空格、连字符分隔),部分日期无法匹配指定格式,因此触发ValueError。

解决方案

先让Pandas自动识别所有日期格式转换为datetime类型,再统一格式化为你需要的“1 July 2022”样式:

步骤1:转换为datetime类型(自动识别多格式)

import pandas as pd

# 定义需要处理的日期列
date_columns = ['INITIATION DATE', 'DATE CUT', 'DATE GIVEN']

# 自动解析多种格式,无法解析的转为NaT(可选errors='coerce'便于后续异常值处理)
df[date_columns] = df[date_columns].apply(pd.to_datetime, errors='coerce')

步骤2:格式化为目标字符串格式

如果需要不带前导零的日期+月份全称+年份,可以用两种方式实现:

方式1:跨系统兼容的拼接法(推荐)

避免不同系统strftime格式符差异的问题:

df[date_columns] = df[date_columns].apply(
    lambda col: col.dt.day.astype(str) + ' ' + col.dt.month_name() + ' ' + col.dt.year.astype(str)
)

方式2:使用strftime(注意系统差异)

  • 适用于Linux/macOS:
df[date_columns] = df[date_columns].dt.strftime('%-d %B %Y')
  • 适用于Windows:
df[date_columns] = df[date_columns].dt.strftime('%#d %B %Y')

验证结果

处理后,所有日期列都会统一为“1 July 2022”“21 July 2022”这类格式,斜杠、连字符等分隔符已被移除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:45:51