gpt4 book ai didi

python - 在使用 pandas 进行上采样时填充高频窗口

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:06 25 4
gpt4 key购买 nike

我正在使用 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 的日子,以便每日索引“填满”整个一月,即使 2012-01-31 仍然是唯一的非 NaN 观察月。

我也很好奇是否有内置方法可以更好地控制高频周期如何填充低频值。在每月到每天的例子中,默认只填写每个月的最后一天;如果我使用 PeriodIndex 来索引我的系列,我也可以 s.resample('D', convention='start') 只填充第一个观察结果。但是,我还希望选择用月值填充该月的每一天,并用日平均值填充每一天(月值除以该月的天数)。

请注意,基本的回填和正向填充不足以用月值填充该月的每个每日观察值。例如,如果每月系列从一月运行到三月,但二月的值为 NaN,则前向填充会将一月的值带入二月,这是不希望的。

最佳答案

这个怎么样?

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

关于python - 在使用 pandas 进行上采样时填充高频窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12840847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com