假设有一个日期列为“date”的数据框df,想按日期范围创建子集,存入列表中。可以使用如下代码:
import pandas as pd
import datetime
# 创建示例数据框
df = pd.DataFrame({'date': pd.date_range(start='2022-01-01', end='2022-02-28')})
# 定义日期范围
start_date = '2022-01-05'
end_date = '2022-02-10'
# 将日期列转换为日期时间格式
df['date'] = pd.to_datetime(df['date'])
# 按日期范围创建数据帧子集的列表
subset_list = []
for i in pd.date_range(start=start_date, end=end_date):
subset_list.append(df[(df['date'] >= i) & (df['date'] <= (i + datetime.timedelta(days=6)))])
这段代码首先创建了一个名为“df”的数据框,其中包含从2022年1月1日到2022年2月28日的日期时间。然后定义了一个起始日期和一个结束日期,并将日期列转换为日期时间格式。最后创建了一个名为“subset_list”的空列表,用于存储子集。然后使用for循环遍历日期范围内的每个子集,并使用pandas的逻辑运算符筛选日期范围内的子集。最后将筛选出的子集添加到“subset_list”中。子集是以逐步增加一周为基础创建的,即从开始日期到开始日期的后七天是第一个子集,从第八天到第十四天是第二个子集,以此类推,直到结束日期。