如何计算相同ID对应相邻TimeStamp的时间差并生成diff列
相同ID相邻时间戳差值计算实现方案
我们可以通过Python Pandas库快速实现该需求,步骤和代码如下:
- 先将数据集按
ID、TimeStamp列升序排序,保证同ID的时间戳按先后顺序排列 - 对数据集按
ID分组,调用diff()方法计算同分组内TimeStamp列的相邻行差值,存入新列diff即可
代码示例
import pandas as pd # 示例数据构造,实际使用时替换为读取你的数据源的逻辑即可 data = { "TimeStamp": [1163, 1163, 1163, 1163, 1176, 1176, 1176, 1176, 1190, 1190, 1190], "Input": ["T"] * 11, "ID": [0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2] } df = pd.DataFrame(data) # 核心计算逻辑 df = df.sort_values(by=["ID", "TimeStamp"], ignore_index=True) df["diff"] = df.groupby("ID")["TimeStamp"].diff() # 可选:如果需要和你给出的输出顺序一致,按TimeStamp和ID重新排序 df = df.sort_values(by=["TimeStamp", "ID"], ignore_index=True) print(df)
注意事项
- 若你的
TimeStamp为datetime时间类型而非整数,diff计算后得到的是timedelta格式,可通过.dt.total_seconds()等方法转换为你需要的时间单位数值 - 计算前必须确保同ID的时间戳已经按时间先后排序,否则得到的差值会不符合预期
内容的提问来源于stack exchange,提问作者CHL
相关产品推荐
相关产品推荐

