【Python之Pandas】时间段按天数进行分割

根据天数分割时间段

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’]

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值