检查时间序列数据中是否缺少值

时间:2018-07-31 12:12:46

标签: python pandas dataframe

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

我想在一周中检查丢失的数据(因此:如果缺少一分钟或更多分钟)。

我该如何在Python(例如Pandas DataFrame)中实现高性能?

1 个答案:

答案 0 :(得分:2)

最简单的方法可能是将缺少值的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')
相关问题