[英]How to resample irregular time series to daily frequency and have it span to today?
我有一个不规则间隔(相对于时间频率)的pandas数据帧。 我可以使用resample命令成功地将数据帧上采样到每日频率,但我的问题是重采样在最后一次(预重采样)数据观察结束。 我希望重新采样一直延伸到今天的日期。
例如,这是不规则的数据帧:
data
Out[1]:
Var 1 Var 2 Var 3 Var 4
Dates
2017-09-20 16.0 1.328125 1.375 0.135976
2017-12-13 16.0 1.343750 1.375 0.085391
2018-03-21 15.0 2.191667 2.125 0.274946
2018-06-13 15.0 2.241667 2.375 0.208452
2018-09-26 16.0 4.312500 2.375 0.111803
2018-12-19 17.0 4.279412 2.375 0.083026
2019-03-20 17.0 3.507353 2.375 0.179358
我用了
dset = data.resample('D', convention = 'end').ffill()
结果(尾端)
dset.tail()
Out[2]:
Var 1 Var 2 Var 3 Var 4
Dates
2019-03-16 17.0 4.279412 2.375 0.083026
2019-03-17 17.0 4.279412 2.375 0.083026
2019-03-18 17.0 4.279412 2.375 0.083026
2019-03-19 17.0 4.279412 2.375 0.083026
2019-03-20 17.0 3.507353 2.375 0.179358
这是伟大的,除了最后的“上采样”在3/20/2019结束,但我希望它在4/13/2019(今天的日期)结束。 正如您所看到的,我所采用的重新采样类型是简单地从不规则系列中获取数据并每天重复这一数据直到下一个(不规则的)数据点,从中重复新的观察直到下一个(不规则的)数据点等
我确信我正在做一些愚蠢/不添加命令的简单附录。 如果可能的话,我宁愿呆在熊猫里面。
我想完成的数据是这样的:
dset.tail()
Out[2]:
Var 1 Var 2 Var 3 Var 4
Dates
2019-03-20 17.0 3.507353 2.375 0.179358
2019-03-21 17.0 3.507353 2.375 0.179358
2019-03-22 17.0 3.507353 2.375 0.179358
more days, repeated
2019-04-11 17.0 3.507353 2.375 0.179358
2019-04-12 17.0 3.507353 2.375 0.179358
2019-04-13 17.0 3.507353 2.375 0.179358
非常感谢您提供任何帮助/提示。
将DataFrame.reindex
与pandas.date_range
方法一起使用:
dset = data.reindex(
pd.date_range(start=data.index.min(),
end=pd.datetime.today(),
freq='D'),
method='ffill')
[输出]
Var 1 Var 2 Var 3 Var 4
2017-09-20 16.0 1.328125 1.375 0.135976
2017-09-21 16.0 1.328125 1.375 0.135976
2017-09-22 16.0 1.328125 1.375 0.135976
2017-09-23 16.0 1.328125 1.375 0.135976
2017-09-24 16.0 1.328125 1.375 0.135976
2017-09-25 16.0 1.328125 1.375 0.135976
2017-09-26 16.0 1.328125 1.375 0.135976
2017-09-27 16.0 1.328125 1.375 0.135976
2017-09-28 16.0 1.328125 1.375 0.135976
2017-09-29 16.0 1.328125 1.375 0.135976
...
2019-04-04 17.0 3.507353 2.375 0.179358
2019-04-05 17.0 3.507353 2.375 0.179358
2019-04-06 17.0 3.507353 2.375 0.179358
2019-04-07 17.0 3.507353 2.375 0.179358
2019-04-08 17.0 3.507353 2.375 0.179358
2019-04-09 17.0 3.507353 2.375 0.179358
2019-04-10 17.0 3.507353 2.375 0.179358
2019-04-11 17.0 3.507353 2.375 0.179358
2019-04-12 17.0 3.507353 2.375 0.179358
2019-04-13 17.0 3.507353 2.375 0.179358
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.