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

列表缺失值填充:补全日内时间戳并为无对应值项填0

补全日内时间戳并填充缺失值为0的实现方案

没问题,我来帮你搞定这个需求!要补全日内所有缺失的时间戳,同时给没有对应数值的项填充0,用Python就能轻松实现,下面是具体的思路和代码:

核心思路

  1. 生成完整时间序列:先创建从00:00:00到23:59:59的所有秒级时间戳,保证覆盖全日的每一秒。
  2. 建立映射关系:把原有的时间戳和对应数值转换成字典,这样可以快速查找每个时间戳对应的数值。
  3. 填充缺失值:遍历完整时间戳列表,用字典的get方法获取数值——如果时间戳在原列表中存在,就取对应值;不存在则返回默认值0。

完整代码示例

from datetime import datetime, timedelta

# 原始数据
list1 = ['00:00:02', '00:00:05', '00:00:06']
list2 = [2, 3, 4]

# 将时间戳和数值转为字典,方便快速查找
time_value_dict = dict(zip(list1, list2))

# 生成全日完整时间戳(从00:00:00到23:59:59,每秒一个)
start = datetime.strptime('00:00:00', '%H:%M:%S')
end = datetime.strptime('23:59:59', '%H:%M:%S')

full_timestamps = []
current = start
while current <= end:
    full_timestamps.append(current.strftime('%H:%M:%S'))
    current += timedelta(seconds=1)

# 生成对应数值列表,缺失值填充为0
full_values = [time_value_dict.get(ts, 0) for ts in full_timestamps]

# 验证前10个结果(可选)
for ts, val in zip(full_timestamps[:10], full_values[:10]):
    print(f"{ts}: {val}")

代码说明

  • 字典映射:dict(zip(list1, list2))把两个列表关联成键值对,时间戳是键,数值是值,查找时间复杂度为O(1),效率很高。
  • 时间序列生成:用datetime和timedelta逐秒递增,确保生成的时间戳格式和原列表完全一致(%H:%M:%S即小时:分钟:秒)。
  • 缺失值填充:列表推导式结合dict.get()方法,简洁高效地完成数值填充,get方法的第二个参数是默认值,这里设为0。

运行代码后,full_timestamps就是全日完整的时间戳列表,full_values是对应的数值列表,所有原列表没有的时间戳都会匹配到0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:49:45