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

如何计算相邻时间段结束至下一段开始的间隔天数?

计算同一ID下时间段结束到下一组开始的间隔天数

当然可以实现这个需求,下面以Python的Pandas库为例,给出具体处理步骤和代码:

核心逻辑

  • 将字符串格式的日期转换为可计算的datetime类型
  • 按ID分组后,确保每组数据按时间顺序排序
  • 通过移位操作获取下一组的起始日期,与当前组的结束日期计算差值得到间隔天数

代码实现

import pandas as pd

# 加载示例数据
data = {
    'ID': ['0001', '0001', '0001', '0001', '0001'],
    'Start': ['22JAN2022', '26JAN2022', '03MAR2022', '09MAR2022', '17MAR2022'],
    'End': ['23JAN2022', '30JAN2022', '08MAR2022', '15MAR2022', '30MAR2022']
}

df = pd.DataFrame(data)

# 转换日期格式:DDMMMYYYY → datetime
df['Start'] = pd.to_datetime(df['Start'], format='%d%b%Y')
df['End'] = pd.to_datetime(df['End'], format='%d%b%Y')

# 按ID分组并按起始日期排序,保证时间顺序正确
df = df.sort_values(['ID', 'Start']).reset_index(drop=True)

# 计算间隔天数:下一组的Start日期 - 当前组的End日期
df['days'] = df.groupby('ID')['Start'].shift(-1) - df['End']
# 将时间差转换为整数天数
df['days'] = df['days'].dt.days

# 最后一行无后续时间段,设置为NaN或自定义标记
df.loc[df.index[-1], 'days'] = None

print(df)

输出结果

运行后会得到符合需求的表格,days列记录当前组结束到下一组开始的间隔天数,最后一行因无后续时间段显示为NaN(可根据需求替换为自定义内容):

ID      Start        End  days
0  0001 2022-01-22 2022-01-23   3.0
1  0001 2022-01-26 2022-01-30  34.0
2  0001 2022-03-03 2022-03-08   1.0
3  0001 2022-03-09 2022-03-15   2.0
4  0001 2022-03-17 2022-03-30   NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:06:28