繁体   English   中英

将月末或周末系列转换为每日系列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM