重新采样非常适合我两次之间对行进行升采样。
例如时间序列(ts)如下:
_time num
2018-04-11 07:55:00 1
2018-04-11 07:59:00 1
我可以跑步:
ts.resample('min').sum().fillna(0)
并获取:
_time num
2018-04-11 07:55:00 1
2018-04-11 07:56:00 0
2018-04-11 07:57:00 0
2018-04-11 07:58:00 0
2018-04-11 07:59:00 1
但是,无论如何,我想重新采样到午夜,而不是重新采样到系列的最后一行。
例如最终输出为:
_time num
2018-04-11 07:55:00 1
2018-04-11 07:56:00 0
2018-04-11 07:57:00 0
2018-04-11 07:58:00 0
2018-04-11 07:59:00 1
...
2018-04-11 23:58:00 0
2018-04-11 23:59:00 0
2018-04-12 00:00:00 0
一种解决方案是在_time为午夜且num为0的系列中添加一行。
但是,有没有更优雅的内置解决方案?
答案 0 :(得分:1)
虽然没有内置解决方案可以像{em> midnight (AFAIK)那样使用resample
达到所需的终点,但请考虑一种动态解决方案,以基于当前添加行使用pd.concat
来计算ts 数据,该值是计算出的 midnight 系列的单值。
具体来说,通过采用 ts 的max
索引值并将其标准化为午夜,然后使用datetime的{{ 1}}:
timedelta()