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

如何在pandas中基于两个日期列计算生成duration时长列

实现方法

你可以按以下两步操作完成需求:

  • 先把两个日期列从字符串格式转换为pandas的datetime格式,这一步是日期运算的前提
  • 直接用结束日期减去起始日期,即可得到间隔时长,可根据需要选择返回timedelta类型还是纯数字的天数值

完整示例代码如下:

import pandas as pd

# 读取数据集
expeditions = pd.read_csv("https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-09-22/expeditions.csv")

# 转换日期列格式
expeditions['basecamp_date'] = pd.to_datetime(expeditions['basecamp_date'])
expeditions['highpoint_date'] = pd.to_datetime(expeditions['highpoint_date'])

# 新增duration列,为timedelta类型间隔
expeditions['duration'] = expeditions['highpoint_date'] - expeditions['basecamp_date']

# 如果你需要纯数字的天数间隔,可以用下面的代码新增duration_days列
expeditions['duration_days'] = (expeditions['highpoint_date'] - expeditions['basecamp_date']).dt.days

注意:如果两个日期列存在空值,运算得到的对应行结果会自动为NaT(时间类型空值),符合常规处理逻辑;如果需要其他单位的间隔时长,可基于总秒数.dt.total_seconds()做单位换算即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:54:00