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

如何计算Pandas datetime列的累计时长并新增秒级时长列

如何在Pandas中计算时间列的累计时长(秒为单位)

嘿,我来帮你搞定这个需求!你已经成功把time列转换成了datetime类型,接下来新增累计时长列其实很简单,这里有两种实用的方法:

方法一:直接与起始时间做差

这种方法最直观,每条记录的时间减去第一条记录的时间,再把时间差转换成总秒数即可:

import pandas as pd

# 初始化你的DataFrame
df = pd.DataFrame ({'time': ['2014-05-01 18:47:05', '2014-05-01 18:47:06', '2014-05-02 18:47:08', '2014-05-02 18:47:10', '2014-05-02 18:47:11']})
df['time'] = pd.to_datetime(df['time'])

# 计算累计时长(秒)
df['duration'] = (df['time'] - df['time'].iloc[0]).dt.total_seconds()

运行后你会得到想要的结果:

time  duration
0 2014-05-01 18:47:05       0.0
1 2014-05-01 18:47:06       1.0
2 2014-05-02 18:47:08    86403.0
3 2014-05-02 18:47:10    86405.0
4 2014-05-02 18:47:11    86406.0

方法二:相邻时间差累加

如果你更倾向于通过计算相邻记录的时间差再累加,也可以这么做:

# 先计算相邻时间差,再填充第一条的空值(0),最后累加
df['duration'] = df['time'].diff().dt.total_seconds().fillna(0).cumsum()

这个方法得到的结果和第一种完全一致,适合需要灵活调整起始逻辑的场景。

小提示

dt.total_seconds()会自动把天、小时、分钟等时间单位全部转换成秒,不用你手动换算,非常方便!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:07:07