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

如何将DataFrame中字符串日期列转为时间戳并计算日期间差值

修复方案

错误原因

报错是因为date1、date2两列当前为字符串类型,Python不支持直接对字符串做减法运算计算日期差。

转换日期列为时间戳格式

有两种常用转换方式:

  • 读取数据时直接转换
    如果是从csv等文件读取生成DataFrame,可通过parse_dates参数直接指定要解析为日期的列,无需后续手动转换:
import pandas as pd
df = pd.read_csv("你的文件路径.csv", parse_dates=["date1", "date2"])
  • 对已有DataFrame手动转换
    使用pd.to_datetime()方法单独转换两个日期列:
df["date1"] = pd.to_datetime(df["date1"])
df["date2"] = pd.to_datetime(df["date2"])

提示:如果你的日期是特殊自定义格式,可以添加format参数提升转换效率、避免识别错误,示例:df["date1"] = pd.to_datetime(df["date1"], format="%Y-%m-%d")

计算日期差生成day列

日期格式转换完成后即可直接做减法运算,若需要提取纯数字格式的天数,可调用.dt.days属性:

# 生成timedelta类型的时间差列
df["day"] = df["date2"] - df["date1"]

# 生成纯数字格式的天数列
df["day"] = (df["date2"] - df["date1"]).dt.days

运行结果示例

对你提供的测试数据执行以上代码后,输出结果如下:

date1      date2  day
0 2021-11-02 2021-11-02    0
1 2021-11-02 2021-11-03    1
2 2021-11-02 2021-11-07    5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:45:04