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

pd.to_datetime转换后max函数返回错误最大日期如何解决

问题原因及修复方案

核心问题点

  • 你在pd.to_datetime中设置的格式参数format = '%d.%m.%Y'和数据实际的斜杠分隔格式不匹配,导致绝大多数日期转换失败被置为空值,2021年的日期全部被识别为无效值丢失,这是你取不到31/08/2021的首要原因。
  • 转换为日期类型后你立即调用dt.strftime将列转回了字符串格式,字符串取最大值是按字典序比较而非日期逻辑,会进一步导致计算结果错误。
  • 不需要额外调用re库提取年份,datetime类型自带年/月/日属性可直接读取。

修复后代码

# 日期列转换为datetime64类型,保留原始格式不要转字符串
file['Date'] = pd.to_datetime(
    file['Date'], 
    errors='coerce',
    dayfirst=True, 
    format='%d/%m/%Y' # 修正为和数据匹配的斜杠分隔格式
)

min_date = file['Date'].min()
max_date = file['Date'].max()

# 输出时再做格式转换,年份直接从datetime对象取
print(
    min_date.strftime('%d/%m/%Y'), 
    max_date.strftime('%d/%m/%Y'), 
    range(min_date.year, max_date.year)
)

运行后即可输出你预期的01/01/1994 31/08/2021 range(1994, 2021)结果。

内容的提问来源于stack exchange,提问作者Sultry T.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:48:02