Chr*_*L. 5 python time-series 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
Run Code Online (Sandbox Code Playgroud)
我用了
dset = data.resample('D', convention = 'end').ffill()
Run Code Online (Sandbox Code Playgroud)
结果(尾端)在
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
Run Code Online (Sandbox Code Playgroud)
很棒,除了最后一次“上采样”已于2019年3月20日结束,但我希望它于2019年4月13日(今天)结束。如您所见,我所进行的重采样类型是简单地从不规则序列中获取数据并每天重复一次,直到下一个(不规则)数据点为止,从中重复新的观察直到下一个(不规则)数据点等
我确定我在做一些愚蠢的事情/没有在命令中添加简单的附录。如果可能的话,我宁愿留在熊猫里面。
我想完成的数据是这样的:
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
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,谢谢您提供的任何帮助/提示。