如何在Pandas DataFrame中迭代计算日期列相邻条目小时级时间差
计算Pandas DataFrame中相邻日期的小时差
实现方法
Pandas自带高效的向量化操作,无需手动迭代,用内置的diff()方法就能批量计算相邻时间差,再转换为小时单位即可。
- 确保日期列是datetime类型
如果你的Date列还未转为datetime格式,先执行转换:
import pandas as pd data['Date'] = pd.to_datetime(data['Date'])
- 批量计算相邻时间差(小时)
直接调用diff()获取相邻行的时间差,再通过total_seconds()转换为小时:
# 生成相邻时间差的小时列 data['TimeDiff_hours'] = data['Date'].diff().dt.total_seconds() / 3600
示例运行结果
针对你给出的示例数据,执行后会得到如下结果:
| Date | TimeDiff_hours |
|---|---|
| 2022-07-22 15:35:13 | NaN |
| 2022-07-22 15:35:18 | 0.001389 |
| 2022-07-22 15:35:23 | 0.001389 |
| 2022-07-22 15:35:28 | 0.001389 |
(第一行显示NaN是因为没有前序时间可对比,属于正常逻辑)
优势说明
这种向量化操作比手动循环效率高得多,尤其是处理大型数据集时,既能避免循环带来的性能损耗,代码也更简洁易维护。
内容的提问来源于stack exchange,提问作者Ashtu
相关产品推荐
相关产品推荐

