所以我想用ffill方法对数据进行降采样
我有一个数据:
2020-01-01 1.248310e+06
2021-01-01 1.259511e+06
2022-01-01 1.276312e+06
2023-01-01 1.298714e+06
输出应为:
2020-01-01 1.248310e+06
2020-02-01 1.248310e+06
2020-03-01 1.248310e+06
.... ...
2023-10-01 1.298714e+06
2023-11-01 1.298714e+06
2023-12-01 1.298714e+06
以下是我尝试的方法
down_sampling = df.resample('MS', fill_method= 'ffill')
我得到的结果是:
2020-01-01 1.248310e+06
2020-02-01 1.248310e+06
2020-03-01 1.248310e+06
.... ...
2022-11-01 1.276312e+06
2022-12-01 1.276312e+06
2023-01-01 1.298714e+06
这里的问题是2023年只有一个月。
你能提出修理的建议吗?
谢谢你。
2条答案
按热度按时间u4vypkhs1#
你可以这样做:
rbpvctlc2#
这是一个古怪但又像Python一样的解决方案:
它选取最后一行(作为df:
df.iloc[[-1]]
),将其指数增加一个步长(此处为1天:
.index.shift(1, freq="D")
),然后重新取样:
.resample("H").ffill()
并删除df(
[:-1]
)末尾的单个虚拟行我实际上希望
resample
的closed:
参数完成这项工作。