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

如何为带DatetimeIndex的Pandas DataFrame新增行间隔小时差列

Pandas 计算DatetimeIndex相邻行时间差(小时单位)

需求

有一个携带DatetimeIndex的DataFrame,需要新增一列存储DatetimeIndex相邻行之间的时间差,单位要求为小时。由于数据量达数千行,不适合用for循环实现。

原始数据示例

Datetime            Numbers
2020-11-27 08:30:00    1
2020-11-27 13:00:00    2
2020-11-27 15:15:00    3
2020-11-27 20:45:00    4
2020-11-28 08:45:00    5
2020-11-28 10:45:00    6
2020-12-01 04:00:00    7
2020-12-01 08:15:00    8
2020-12-01 12:45:00    9
2020-12-01 14:45:00   10
2020-12-01 17:15:00   11
         ...

预期输出效果

Datetime             Numbers   Delta
2020-11-27 08:30:00    1        Nan
2020-11-27 13:00:00    2       4.5
2020-11-27 15:15:00    3       2.25
2020-11-27 20:45:00    4       5.5
2020-11-28 08:45:00    5       12
2020-11-28 10:45:00    6       2
2020-12-01 04:00:00    7       65.25
2020-12-01 08:15:00    8       4.25
2020-12-01 12:45:00    9       4.5
2020-12-01 14:45:00   10       2
2020-12-01 17:15:00   11       2.5
                  ...

解决方案

方案1(原找到的实现方法)

import numpy as np

df = df.reset_index()
df['Time'] = df['Datetime'].astype(np.int64) // 10**9
df['Delta'] = df['Time'].diff()/3600
df.drop(columns=['Time'],inplace =True)
df.set_index('Datetime', inplace=True)

方案2(更简化实现,无需来回修改索引)

# 直接对索引做差分计算,一行代码即可完成
df['Delta'] = df.index.to_series().diff().dt.total_seconds() / 3600

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:45:03