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

如何检测时间序列中的两类缺失值:整日期缺失与单日部分缺失

日期缺失检测方案

假设你的数据是带时间戳的结构化数据,用Pandas可以高效解决这个问题,不用写复杂循环:

1. 准备工作

先导入库并处理时间列:

import pandas as pd

# 读取数据(替换成你的数据读取方式)
df = pd.read_csv("your_data.csv")
# 把时间列转为datetime类型,替换成你的实际列名
df['timestamp'] = pd.to_datetime(df['timestamp'])
# 提取日期列,用于后续分组
df['date'] = df['timestamp'].dt.date

2. 找出整日期缺失的日期

# 获取数据中的首尾日期
min_date = df['date'].min()
max_date = df['date'].max()
# 生成该区间内的所有完整日期
full_date_range = pd.date_range(start=min_date, end=max_date).date
# 对比找出完全没有数据的日期
missing_full_dates = set(full_date_range) - set(df['date'].unique())
print("整日期缺失的日期:", sorted(missing_full_dates))

3. 找出单日存在部分数据缺失的日期

情况A:单日有记录但部分字段值缺失

# 按日期分组,检查每组内是否存在空值
partial_missing_dates = df.groupby('date').apply(lambda x: x.isnull().any().any()).reset_index(name='has_missing')
# 筛选出有缺失的日期
partial_missing_dates = partial_missing_dates[partial_missing_dates['has_missing']]['date'].tolist()
print("单日部分字段缺失的日期:", partial_missing_dates)

情况B:单日数据按时段(比如小时)缺失

如果你的数据是按小时采集,需要检查单日是否覆盖全时段:

# 提取小时列
df['hour'] = df['timestamp'].dt.hour
# 检查每组的小时是否覆盖0-23
def check_hour_coverage(group):
    present_hours = group['hour'].unique()
    return not set(range(24)).issubset(present_hours)

hour_missing_dates = df.groupby('date').apply(check_hour_coverage).reset_index(name='hour_missing')
hour_missing_dates = hour_missing_dates[hour_missing_dates['hour_missing']]['date'].tolist()
print("单日时段缺失的日期:", hour_missing_dates)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 23:35:19