要按周间隔创建时间序列的多个子集,可以使用pandas库中的date_range和resample函数。下面是一个示例代码:
import pandas as pd
# 创建一个时间序列
rng = pd.date_range(start='1/1/2021', end='12/31/2021', freq='D')
df = pd.DataFrame({'date': rng, 'value': range(len(rng))})
# 将date列设置为索引
df.set_index('date', inplace=True)
# 按周间隔创建子集
week_subsets = []
for year in range(2021, 2022):
start_date = f'{year}-01-01'
end_date = f'{year}-12-31'
subset = df.loc[start_date:end_date]
weekly_subset = subset.resample('W').sum()
week_subsets.append(weekly_subset)
# 打印每个子集的前几行
for i, subset in enumerate(week_subsets):
print(f'Subset {i+1}:')
print(subset.head())
print('\n')
这段代码首先创建一个包含日期和值的数据帧。然后,将日期列设置为索引。接下来,使用一个循环按年份创建子集。每个子集都是从一年的开始日期到结束日期的范围,并使用resample函数按周进行汇总。最后,打印每个子集的前几行。
请注意,此示例中的日期格式为"月/日/年",可以根据需要进行调整。还可以根据实际需求更改子集的汇总方法(例如,使用平均值而不是总和)以及打印每个子集的行数。