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

如何拆分DataFrame中的Datetime并计算连续行的时间差

计算DataFrame连续行的时间差

首先确保你的时间列是datetime类型,如果还未转换,先执行:

import pandas as pd

# 替换成你的实际时间列名
df['datetime_col'] = pd.to_datetime(df['datetime_col'])

方法1:用diff()直接计算

pandas的diff()方法专为连续行差值计算设计,针对datetime类型列会自动返回时间差对象:

df['time_diff'] = df['datetime_col'].diff()

生成的time_diff列中,第一行值为NaN(无对应上一行数据),后续每行都是当前行与上一行的时间差,单位会自动匹配原时间列的精度(如秒、分钟、小时等)。

方法2:手动用shift()做差

如果需要更直观地控制计算逻辑,可通过shift(1)将上一行的时间值移至当前行,再做减法:

df['time_diff'] = df['datetime_col'] - df['datetime_col'].shift(1)

该方法与diff()结果完全一致,若需自定义差值方向(比如前减后),调换运算顺序即可。

不推荐单独用datetime模块的原因

遍历每行用datetime模块计算,不仅代码繁琐,对数千行数据来说效率极低。pandas的内置方法是向量化操作,速度更快且实现简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:27:08