我的每日数据如下:
daily_index = pd.date_range(start='1/1/2015', end='1/01/2018', freq='D')
random_values = np.random.randint(1, 3,size=(len(daily_index), 1))
daily_df = pd.DataFrame(random_values, index=daily_index, columns=['A']).replace(1, np.nan)
我想将每个值映射到一个数据框,在该数据框中将每天扩展为多个1分钟间隔。最终的DF看起来像这样:
intraday_index = pd.date_range(start='1/1/2015', end='1/01/2018', freq='1min')
intraday_df_full = daily_df.reindex(intraday_index)
# Choose random indices.
drop_indices = np.random.choice(intraday_df_full.index, 5000, replace=False)
intraday_df = intraday_df_full.drop(drop_indices)
在最后一个数据框中,每天分为1分钟间隔,但是有些间隔丢失了(因此每天的分钟数不相同)。某些日子在一天的开始具有价值,而其余的时间是nan
。
我的问题是,仅对于在第一分钟开始具有一定价值的日子,我该如何在剩下的日子里提前补货?
我最初尝试简单地执行以下daily_df.reindex(intraday_index, method='ffill', limit=1440)
,但是由于缺少某些行,因此无法正常工作。也许有办法限制时间?