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

如何将包含日期列的dataframe按7天为周拆分逐批打印每周数据

实现方案

首先确认你的DataFrame中Date列已经转换为datetime类型,根据你的数据场景选择对应方法即可:

场景1:数据为连续无缺失的每日数据(完全匹配你给出的输出示例)

直接按行顺序每7行划分为一周,代码如下:

import pandas as pd
import numpy as np

# 替换为你自己的DataFrame即可
# df = pd.read_csv("你的文件路径")
# 先确保Date列是日期格式
df['Date'] = pd.to_datetime(df['Date'])
# 可选:将日期转成字符串格式,输出和示例完全一致
df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')

# 逐周打印
for week_idx, week_data in df.groupby(np.arange(len(df)) // 7):
    print(f"第{week_idx + 1}周数据:")
    print(week_data.to_string(header=False))
    # 周之间添加分隔线,可根据需要删除
    print("-" * 40)

场景2:数据存在缺失日期,需要严格按「从最早日期开始每7天算一周」划分

用日期差计算分组,避免缺失值导致周划分错位:

import pandas as pd

df['Date'] = pd.to_datetime(df['Date'])
# 计算每个日期和最早日期的天数差
df['day_gap'] = (df['Date'] - df['Date'].min()).dt.days
# 可选转日期为字符串格式
df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')

for week_idx, week_data in df.groupby(df['day_gap'] // 7):
    print(f"第{week_idx + 1}周数据:")
    print(week_data[['Date', 'Days']].to_string(header=False))
    print("-" * 40)

两种方法输出的格式都和你给出的示例完全一致,如果不需要周序号和分隔线,直接删除对应print语句即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 17:45:00