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

如何自动化清理pandas dataframe列中格式不一致的日期数据

混杂格式日期的自动化清洗方案

首选方案:用pandas内置方法实现零自定义规则匹配

pandas的pd.to_datetime()方法自带格式推断能力,配合参数可以直接处理你场景下的所有样例数据,不需要手动写格式匹配规则:

import pandas as pd

# 第一步:截断时间后缀,仅保留空格前的日期部分,降低识别干扰
df['START_DTTIME'] = df['START_DTTIME'].str.split(' ').str[0]

# 第二步:自动识别日期格式,无效值统一转为空值
df['standard_date'] = pd.to_datetime(
    df['START_DTTIME'],
    errors='coerce', # 无法识别的内容(如UNKNOWN、???等)自动转为NaT空值,不会中断运行
    infer_datetime_format=True # 自动逐行推断日期格式
).dt.date # 仅保留日期部分,丢弃冗余时间信息

# 可选:将空值统一替换为自定义标记
df['standard_date'] = df['standard_date'].fillna('UNKNOWN')

以上代码可以100%覆盖你给出的所有样例格式,包括横杠分隔、斜杠分隔、4位/2位年份的格式,输出统一的标准日期格式。

备选增强方案:适配更偏门的日期格式

如果后续出现pandas默认识别不了的格式,可以用dateutil库的解析器,适配性更强:

from dateutil.parser import parse

def custom_parse(val):
    try:
        # fuzzy参数会自动忽略字符串中的无关字符,识别能力更强
        return parse(val, fuzzy=True).date()
    except:
        # 解析失败返回统一标记
        return 'UNKNOWN'

df['standard_date'] = df['START_DTTIME'].apply(custom_parse)

你每日数据量不超过100条,用apply逐行处理也没有任何性能压力,完全满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:15:02