根据天数分割时间段
import pandas as pd
def split_time_ranges_by_week(from_date, to_date):
# 将字符串输入转换为datetime对象
from_date, to_date = pd.to_datetime(from_date), pd.to_datetime(to_date)
# 生成从开始到结束日期的列表,频率为7天,也可按月2M 3M
time_range = list(pd.date_range(from_date, to_date, freq='7D'))
# 准备输出的时间范围列表
time_ranges = []
for i in range(len(time_range)):
# 当前间隔的开始日期
f_date = time_range[i].strftime("%Y-%m-%d")
# 尝试获取当前间隔的结束日期,如果超出范围,则使用to_date
if i + 1 < len(time_range):
# 由于间隔设置为7天,结束日期应该是下一个间隔的前一天
t_date = (time_range[i + 1] - pd.Timedelta(days=1)).strftime("%Y-%m-%d")
else:
t_date = to_date.strftime("%Y-%m-%d")
time_ranges.append([f_date, t_date])
return time_ranges
# 示例:从1月1日到1月20日,按照7天进行分割
from_date = "2024-01-02"
to_date = "2024-01-20"
time_ranges = split_time_ranges_by_week(from_date, to_date)
for range in time_ranges:
print(range)
输出结果
[‘2024-01-02’, ‘2024-01-08’]
[‘2024-01-09’, ‘2024-01-15’]
[‘2024-01-16’, ‘2024-01-20’]