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

使用Pandas计算DataFrame日期与今日的天数差及报错解决

问题分析与解决方法

核心错误点:

  1. 直接对文本格式的date列调用.dt.strftime():.dt访问器仅支持datetime类型的列,文本列用它会直接触发AttributeError。
  2. 类型转换逻辑混乱:你尝试转日期后仍沿用错误代码,要么没真正完成datetime转换,要么转换后又用strftime把列转回了字符串,导致后续计算时df.date还是字符串类型,触发TypeError(Timestamp和字符串无法直接相减)。

正确写法

分两步完成:先将文本列转为datetime类型,再计算天数差:

# 第一步:把文本格式的date列转换为datetime类型
df['date'] = pd.to_datetime(df['date'])

# 第二步:计算每行日期与今日的天数差
df['days_diff_from_today'] = (pd.to_datetime('today') - df['date']).dt.days

补充优化方案

  • 若date列存在无效日期格式,可添加errors='coerce'参数将无效值转为NaT(缺失的datetime类型值):
    df['date'] = pd.to_datetime(df['date'], errors='coerce')
    
  • 如需保留原文本格式的date列,可新建datetime类型列用于计算,不修改原列:
    df['date_datetime'] = pd.to_datetime(df['date'])
    df['days_diff_from_today'] = (pd.to_datetime('today') - df['date_datetime']).dt.days
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 23:00:07