You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现pandas下datetime预定义周分组的多周迭代处理

该需求完全可以实现,不需要每周重复复制代码,你可以通过循环迭代或者pandas内置的日期分组功能实现多周批量处理。

现有代码的小修正

你的现有代码里有两处需要注意的问题,避免运行报错或无效果:

  • df.groupby(by=['datasource_name','id'],as_index=False).sum() 没有赋值给变量,分组求和的结果不会生效
  • 筛选列时用的列名是datasource,分组时用的是datasource_name,需要和你实际的数据集列名保持一致

方案1:循环迭代指定范围内的所有周

你只需要修改最上方的起止配置参数,就能自动处理对应时间段内的所有周数据,代码如下:

import pandas as pd
from datetime import timedelta

# 可按需修改的配置参数
first_week_start = '2021-09-26'  # 要处理的第一周开始日期
last_week_end = '2023-12-31'     # 要处理的最晚周结束日期

# 格式转换与初始化
current_start = pd.to_datetime(first_week_start)
last_end = pd.to_datetime(last_week_end)
all_weeks_result = []

# 按周迭代处理
while current_start <= last_end:
    current_end = current_start + timedelta(days=6)
    # 筛选当前周数据
    week_df = df[(df.date >= current_start) & (df.date <= current_end)].copy()
    # 分组求和
    week_agg = week_df.groupby(['datasource', 'id'], as_index=False)[['revenue', 'spend']].sum()
    # 补上周起止标识
    week_agg['start_date'] = current_start.strftime('%Y-%m-%d')
    week_agg['end_date'] = current_end.strftime('%Y-%m-%d')
    all_weeks_result.append(week_agg)
    # 跳到下一周
    current_start += timedelta(days=7)

# 合并所有周的结果为总表
final_df = pd.concat(all_weeks_result, ignore_index=True)

方案2:pandas内置按周分组(更高效,无需写循环)

如果你的数据是连续的,可以直接用pandas的日期计算功能批量给所有数据打上周标识,一次分组得到所有周的结果:

import pandas as pd
from datetime import timedelta

# 先确保日期列是datetime格式
df['date'] = pd.to_datetime(df['date'])
# 计算每条数据所属周的开始/结束日期(此处配置周起始为周日,和你示例的2021-09-26(周日)对应,如果需要周起始为周一,把下行的+1改成+0即可)
df['week_start'] = df['date'] - pd.to_timedelta((df['date'].dt.dayofweek + 1) % 7, unit='d')
df['week_end'] = df['week_start'] + timedelta(days=6)

# 按周、数据源、id分组求和
final_df = df.groupby(['week_start', 'week_end', 'datasource', 'id'], as_index=False)[['revenue', 'spend']].sum()

# 可选:将日期转为你需要的字符串格式
final_df['start_date'] = final_df['week_start'].dt.strftime('%Y-%m-%d')
final_df['end_date'] = final_df['week_end'].dt.strftime('%Y-%m-%d')

内容的提问来源于stack exchange,提问作者ledcooing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:54:04