在R语言中将周度经济序列数据转换为工作日日度数据
周度经济数据转日度(工作日填充)解决方案
针对你的需求——将周度序列数据转换为日度,且每个周度值覆盖后续5个非周末工作日,以下是基于Python pandas的高效实现方法:
步骤说明
- 将原始周度数据的日期列转换为datetime格式,方便时间序列处理。
- 生成指定日期范围内的所有工作日(过滤周末)。
- 通过重索引+前向填充,将周度值映射到对应的工作日区间。
完整代码实现
import pandas as pd # 1. 定义原始周度数据(替换为你的实际数据读取逻辑,比如pd.read_csv) weekly_data = pd.DataFrame({ 'Date': ['2014-01-07', '2014-01-14', '2014-01-21', '2014-01-28', '2014-02-04'], 'Value': [14791, 14698, 14523, 16233, 14783] }) # 2. 转换日期格式并设置为索引 weekly_data['Date'] = pd.to_datetime(weekly_data['Date']) weekly_data.set_index('Date', inplace=True) # 3. 生成日期范围内的所有工作日(freq='B'代表工作日) start_date = weekly_data.index.min() end_date = weekly_data.index.max() all_weekdays = pd.date_range(start=start_date, end=end_date, freq='B') # 4. 重索引+前向填充,完成周转日转换 daily_data = weekly_data.reindex(all_weekdays).ffill() # 5. 重置索引,恢复Date列格式 daily_data.reset_index(inplace=True) daily_data.rename(columns={'index': 'Date'}, inplace=True) # 查看结果 print(daily_data)
结果说明
- 代码会自动将每个周度数据点的
Value填充到从该日期开始,到下一个周度数据点前一个工作日的所有非周末日期,正好对应你要求的5个工作日区间。 - 若你的周度数据间隔不固定(非严格每周一次),该方法依然有效:前向填充会持续到下一个可用的周度数据点为止。
内容的提问来源于stack exchange,提问作者Kevin Muir
相关产品推荐
相关产品推荐

