如何拆分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
相关产品推荐
相关产品推荐

