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

如何用Python计算CSV文件中两个日期的天数差?

问题解决:计算日期差的整数天数

你的代码存在几个关键问题,导致无法正确获取天数:

  1. 错误遍历DataFrame:for row in df遍历的是列名而非数据行,且完全没必要用循环——pandas支持向量化操作,直接对整列计算更高效。
  2. 错误调用天数属性:pandas的时间差序列(TimedeltaSeries)需通过.dt.days获取天数,而非.datetime.days。
  3. 重复取整列数据:循环中每次都取整个df["PasswordLastSet"]而非单条数据,会导致类型不匹配报错。

修正后的代码

import pandas as pd
from datetime import datetime

# 读取CSV并解析日期列
df = pd.read_csv("serv.csv", parse_dates=["PasswordLastSet"])

# 获取当前日期(转为pandas Timestamp类型)
current_date = pd.to_datetime(datetime.today())

# 直接对整列计算日期差
delta = current_date - df["PasswordLastSet"]

# 获取整数天数,得到可直接用于运算的int类型Series
df["DaysSinceLastSet"] = delta.dt.days

# 查看结果示例
print(df[["PasswordLastSet", "DaysSinceLastSet"]])

关键说明

  • 无需循环:pandas会自动对整列的每个元素执行日期差计算,效率远高于逐行循环。
  • .dt.days:这是pandas针对时间差序列的专属属性,返回每个时间差对应的整数天数,结果为int64类型,可直接用于后续数学运算。
  • 结果存储:将计算出的天数存入DataFrame新列,方便后续代码调用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 14:25:29