The base
参数应用于午夜,因此在您的情况下,采样从 00:30 开始,并从那里添加 78 分钟的增量。我看到两个选择。
Option 1:
弄清楚是什么base
应用到午夜应该是为了到达 9:30(在这种情况下24
):
Data.resample(tframe, base=24)
Option 2:
自己生成日期时间索引,然后重新采样reindex
:
index = pd.date_range('2009-01-30 09:30:00', '2009-01-30 16:00:00', freq='78min')
Data.reindex(index=index)
EDIT:对于多天,您将需要自己生成时间戳。
index_date = pd.date_range('2016-04-01', '2016-04-04')
index_date = pd.Series(index_date)
index_time = pd.date_range('09:30:00', '16:00:00', freq='78min')
index_time = pd.Series(index_time.time)
index = index_date.apply(
lambda d: index_time.apply(
lambda t: datetime.combine(d, t)
)
).unstack().sort_values().reset_index(drop=True)
以下是代码的作用:
- 生成您感兴趣的日期和时间,并将它们分成系列以获取
apply
财产。
- 使用嵌套的“applies”,循环日期和时间并将它们组合成一个日期时间对象。
- 输出是一个方形数据框(每个日期一列),所以我
unstack
并对时间戳进行排序(最后重置索引以摆脱沿途生成的无用索引)。
所结果的index
最初可用于重新索引,如选项 2 所示:
Data.reindex(index=index)