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

Pandas将无效字符串日期转为0000-00-00后提取年月的实现方法

解决方法

错误原因

你之前报错是因为pd.to_datetime默认遇到无法识别的日期格式时会直接抛出解析错误,需要调整参数处理无效值。

实现代码

import pandas as pd

# 先做临时日期转换,无法解析的内容转为NaT(时间类型空值),不会报错
temp_datetime = pd.to_datetime(df['Date'], errors='coerce')

# 提取年份,空值填充为0后格式化为4位字符串
df['Date_Year'] = temp_datetime.dt.year.fillna(0).astype(int).astype(str).str.zfill(4)

# 提取月份,空值填充为0后格式化为2位带前导零的字符串
df['Date_month'] = temp_datetime.dt.month.fillna(0).astype(int).astype(str).str.zfill(2)

# 如果你需要把原Date列的无效值替换为0000-00-00,可额外加这一行
# df.loc[temp_datetime.isna(), 'Date'] = '0000-00-00'

效果说明

运行后输出结果和你要求的预期格式完全一致,所有无效日期字符串、缺失值对应的年份会返回0000,月份返回00,原始有效日期的年月提取也正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:36:10