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

Python datetime处理DataFrame日期减法:解决90天前列生成报错问题

解决方法

首先得确保你的start_Date列是datetime类型,如果当前是字符串格式,先做类型转换:

import pandas as pd

# 转换日期列类型(若还不是datetime格式)
df['start_Date'] = pd.to_datetime(df['start_Date'])

然后用pd.Timedelta实现日期往前推90天:

# 生成datetime类型的prior列
df['prior'] = df['start_Date'] - pd.Timedelta(days=90)

如果需要把结果转成YYYY-MM-DD这类指定格式的字符串,就用.dt.strftime()方法:

# 生成字符串格式的prior列
df['prior'] = (df['start_Date'] - pd.Timedelta(days=90)).dt.strftime('%Y-%m-%d')

你的两种方法出错原因:

  • 方法一:df['start_Date'] - 90 直接减整数无效,pandas的datetime系列只能和时间间隔对象(比如pd.Timedelta)做运算,不能直接减整数。
  • 方法二:存在语法错误(df['start_Date')] 括号不匹配),另外对pandas的Series不能直接调用strftime(),必须通过.dt访问器调用日期相关方法,同时你写的dt应该是pd.Timedelta或datetime.timedelta,否则会触发类型错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:02:12