【问题标题】:Check Time Series Data for Missing Values检查时间序列数据中的缺失值
【发布时间】:2018-08-04 22:48:58
【问题描述】:

我想分析时间序列数据,其中有数百万个条目。 数据的粒度为每分钟一个数据条目。 在周末,根据定义,不存在数据。以及工作日的一小时。

我想在一周内检查缺失的数据(例如:如果缺失一分钟或多分钟)。

如何在 Python 中实现高性能(例如,使用 Pandas DataFrame

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

可能最简单的方法是将您的 DatetimeIndex 与缺失值进行比较,参考 DatetimeIndex 涵盖所有值的相同范围。

这是一个示例,我创建了一个任意的 DatetimeIndex 并在 DataFrame 中包含一些虚拟值。

import pandas as pd
import numpy as np

#dummy data
date_range = pd.date_range('2017-01-01 00:00', '2017-01-01 00:59', freq='1Min')
df = pd.DataFrame(np.random.randint(1, 20, (date_range.shape[0], 1)))
df.index = date_range  # set index
df_missing = df.drop(df.between_time('00:12', '00:14').index)

#check for missing datetimeindex values based on reference index (with all values)
missing_dates = df.index[~df.index.isin(df_missing.index)]

print(missing_dates)

哪个会返回:

DatetimeIndex(['2017-01-01 00:12:00', '2017-01-01 00:13:00',
           '2017-01-01 00:14:00'],
          dtype='datetime64[ns]', freq='T')

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2016-11-21
    • 1970-01-01
    • 2019-08-06
    • 2022-01-06
    • 2015-12-03
    • 2015-12-18
    • 2018-11-11
    • 2020-06-03
    相关资源
    最近更新 更多