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

如何用pandas按日期列7天范围分组拆分26.4万行大型DataFrame?

按7天区间拆分DataFrame导出CSV的实现方案

你原来的代码是按单个CreatedDate的值分组,所以拆分的是单日数据,只需要将分组键替换为7天区间的唯一标识即可,完整可运行代码如下:

import pandas as pd

# 第一步:将字符串格式的CreatedDate转为datetime日期类型,方便后续时间计算
options_flow['CreatedDate'] = pd.to_datetime(options_flow['CreatedDate'], format="%m/%d/%Y")

# 第二步:取数据集的最早日期作为计算7天区间的基准
earliest_date = options_flow['CreatedDate'].min()

# 第三步:按7天区间分组,日期与基准的天数差整除7,相同结果属于同一个7天区间
for group_id, group_df in options_flow.groupby((options_flow['CreatedDate'] - earliest_date).dt.days // 7):
    # 取当前分组的起止日期生成文件名,方便识别文件覆盖的时间范围
    start_date = group_df['CreatedDate'].min().strftime('%Y%m%d')
    end_date = group_df['CreatedDate'].max().strftime('%Y%m%d')
    # 导出CSV,index=False避免输出多余的行索引列
    group_df.to_csv(f"7days_{start_date}_to_{end_date}.csv", index=False)

可选调整项

  • 如果你需要按自然周(周一到周日)拆分,而非从数据集最早日期开始顺推7天,只需要把groupby的条件替换为options_flow['CreatedDate'].dt.isocalendar().week即可,pandas会自动按自然周数分组。
  • 如果不需要在文件名里标注起止日期,也可以直接用分组序号命名,比如f"7days_part_{group_id + 1}.csv"。
  • 该方案对26万行的数据集处理效率很高,不会有性能问题。

内容的提问来源于stack exchange,提问作者A l w a y s S u n n y

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:27:03