python – 在使用pandas进行上采样时填充更高频率的窗口

我正在使用pandas将低频数据转换为更高的频率(例如每月到每天).进行此转换时,我希望得到的更高频率索引跨越整个低频窗口.例如,假设我有一个月度系列,如下所示:

import numpy as np
from pandas import *
data = np.random.randn(2)
s = Series(data, index=date_range('2012-01-01', periods=len(data), freq='M'))

s
2012-01-31    0
2012-02-29    1

现在,我将其转换为每日频率:

s.resample('D')
2012-01-31     0
2012-02-01   NaN
2012-02-02   NaN
2012-02-03   NaN
...
2012-02-27   NaN
2012-02-28   NaN
2012-02-29     1

请注意结果输出如何从2012-01-31到2012-02-29.但我真正想要的是从2011-01-01到2012-02-29的日子,所以每日指数“填补”整个1月,即使2012-01-31仍然是唯一的非NaN观察月.

我也很好奇是否有内置方法可以更好地控制较高频率周期如何用较低频率值填充.在每月每日示例中,认值是仅填写每个月的最后一天;如果我使用Periodindex索引我的系列我也可以s.resample(‘D’,convention =’start’)只填充第一个观察.但是,我也希望选项在每个月填写每月的价值,并以每日平均值(每月价值除以当月的天数)填写每一天.

请注意,基本的回填和向前填充不足以用月值填充当月的每日观察值.例如,如果月度序列从1月到3月运行但2月值为NaN,则向前填充会将1月值带入2月,这是不希望的.

解决方法:

这个怎么样?

s.reindex(DatetimeIndex(start=s.index[0].replace(day=1), end=s.index[-1], freq='D'))

相关文章

转载:一文讲述Pandas库的数据读取、数据获取、数据拼接、数...
Pandas是一个开源的第三方Python库,从Numpy和Matplotlib的基...
整体流程登录天池在线编程环境导入pandas和xrld操作EXCEL文件...
 一、numpy小结             二、pandas2.1为...
1、时间偏移DateOffset对象DateOffset类似于时间差Timedelta...
1、pandas内置样式空值高亮highlight_null最大最小值高亮背景...