我想分析时间序列数据,其中有数百万个条目。数据的粒度为每分钟一个数据条目。在周末,根据定义不存在数据。以及工作日一小时。
我想检查一周内是否有丢失的数据(因此:是否丢失了一分钟或多分钟)。
我如何在 Python 中实现高性能(例如使用 Pandas DataFrame)
小智 6
也许最简单的方法是将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)
Run Code Online (Sandbox Code Playgroud)
将返回:
DatetimeIndex(['2017-01-01 00:12:00', '2017-01-01 00:13:00',
'2017-01-01 00:14:00'],
dtype='datetime64[ns]', freq='T')
Run Code Online (Sandbox Code Playgroud)