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

基于ID分组计算时间戳差值:Pandas高效实现方案问询

高效计算分组内时间戳差值的方法

首先要确保TimeStamp列是datetime类型(原数据为字符串,无法直接计算时间差),然后利用pandas内置的groupby.diff()方法——这是矢量化操作,比你原来用apply的方式效率高得多,尤其在数据量较大时优势明显。

优化后的代码:

import pandas as pd

# 初始化示例DataFrame
df = pd.DataFrame({'ID':['A','A','B','B'],'TimeStamp':['2022-08-02T17:33:44.358Z',
'2022-08-02T17:33:44.600Z',
'2022-08-02T17:33:44.814Z',
'2022-08-02T17:33:45.028Z']})

# 将字符串时间戳转换为datetime类型
df['TimeStamp'] = pd.to_datetime(df['TimeStamp'])

# 按ID分组计算组内时间差
df['diff'] = df.groupby('ID')['TimeStamp'].diff()

# 查看结果
print(df['diff'])

输出结果:

0                   NaT
1   0 days 00:00:00.242000
2   0 days 00:00:00.214000
3   0 days 00:00:00.214000
Name: diff, dtype: timedelta64[ns]

效率提升原因:

  • 你原来的代码用apply配合lambda,本质是逐组执行Python层面的循环,速度较慢;
  • groupby.diff()是pandas底层实现的矢量化操作,直接在C语言层面完成计算,避免了Python循环的额外开销,处理大规模数据时性能提升显著。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:12:59