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

Pandas:按天计算DateTime索引时间差并新增Difference列的方法

解决方案

你的DataFrame索引已经是Datetime类型,我们按日期分组计算每日首尾记录的时间差,再对齐到原数据对应行即可,具体实现如下:

步骤1:计算每日时间差

首先按天对数据分组,计算每组最后一条与第一条记录的时间差值:

import pandas as pd

# 确保索引按时间排序(如果原数据已经排序可以跳过这步)
df = df.sort_index()

# 按日期分组计算时间差,返回结果为timedelta类型
daily_diff = df.groupby(df.index.date).apply(lambda group: group.index[-1] - group.index[0])

# 可选:将时间差转换为分钟/小时数值,方便后续计算
# 转分钟:daily_diff = daily_diff.dt.total_seconds() / 60
# 转小时:daily_diff = daily_diff.dt.total_seconds() / 3600

步骤2:添加Difference列到原DataFrame

将计算好的每日差值映射到原数据的对应行:

df['Difference'] = df.index.date.map(daily_diff)

效果验证

用你提供的示例数据计算后,输出结果符合预期:

  • 2006-01-01的时间差为45分钟
  • 2006-01-02的时间差为15分钟
  • 2006-01-06的时间差为30分钟

如果需要自定义时间差的显示格式,可以对timedelta类型的Difference列做字符串格式化处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:54:03