[英]convert month-end, or week-end series to daily series
假设我有一个像这样的熊猫系列:
monthly =
2017-05-31 403.43
2017-06-30 292.92
2017-07-31 184.62
索引的类型为“ datetime64 [ns]”。
我想将其转换为每日系列,其中每天的值与月份的值相同,即
daily_imputed =
2017-05-01 403.43
2017-05-02 403.43
2017-05-03 403.43
2017-05-04 403.43
....
2017-07-29 184.62
2017-07-30 184.62
2017-07-31 184.62
什么是实现此目标的好方法?
还可以说我有一个双周刊系列,
biweekly =
2017-06-26 151.6
2017-07-10 204.7
2017-07-24 119.2
因此,现在我也想将其转换为每日,其中将每两周一次的值估算为每日值:
daily_imputed =
2017-06-13 151.6
2017-06-14 151.6
....
2017-07-23 119.2
2017-07-24 119.2
这与每月到每天的逻辑相同,只是从最后一天开始有13天的延迟。 这就是为什么在每日估算数据中2017-06-26从2017-06-13开始。
我将使用重新采样,唯一的问题是它的第一个索引不会在第一个月的第一天开始,但是您可以重新索引
df.resample('D').first().bfill()
您可以像这样重新索引:
import datetime as dt
start = df.index[0]
end = df.index[-1]
d_range = pd.date_range(dt.date(start.year, start.month, 1), end)
df.reindex(d_range).bfill()
您每两周一次的df会执行相同的过程。
编辑: 现在,我正在考虑它,您可以使用新的日期范围对整个数据框重新编制索引,然后回填/向前填充它,而无需使用重新采样!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.