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

如何将Pandas DataFrame中每日数据拆分至单独Excel文件?

按日期拆分DataFrame并导出为独立Excel文件

我有如下DataFrame:

Date        Price   Quantity
12/9/2019   21.47   12
12/9/2019   10.65   12
12/9/2019   11.53   18
12/8/2019   6.19    11
12/8/2019   6.04    3
12/8/2019   6.19    2
12/7/2019   6.04    1
12/7/2019   6.04    7
12/7/2019   6.04    1
12/6/2019   6.19    1
12/6/2019   6.19    1
12/6/2019   6.19    2

希望为每一天创建一个仅包含当日数据的Excel文件,比如一个文件只存9日的数据,另一个存8日的数据,以此类推。尝试过使用for循环,但不知道如何拆分日期,求最优实现方案。

最优实现方案

使用pandas的groupby方法可以高效完成按日期拆分并导出的需求,步骤如下:

1. 导入依赖并准备DataFrame

import pandas as pd

# 构造示例DataFrame(如果已有数据可跳过此步)
data = {
    'Date': ['12/9/2019', '12/9/2019', '12/9/2019',
             '12/8/2019', '12/8/2019', '12/8/2019',
             '12/7/2019', '12/7/2019', '12/7/2019',
             '12/6/2019', '12/6/2019', '12/6/2019'],
    'Price': [21.47, 10.65, 11.53, 6.19, 6.04, 6.19, 6.04, 6.04, 6.04, 6.19, 6.19, 6.19],
    'Quantity': [12, 12, 18, 11, 3, 2, 1, 7, 1, 1, 1, 2]
}
df = pd.DataFrame(data)

2. 转换日期列格式(关键步骤)

将原始字符串格式的Date列转为日期类型,避免因字符串格式差异导致分组错误:

df['Date'] = pd.to_datetime(df['Date'])

3. 按日期分组并导出Excel

# 遍历每个日期分组
for date, group in df.groupby('Date'):
    # 生成合法文件名(避免斜杠等非法字符)
    filename = f"当日数据_{date.strftime('%Y-%m-%d')}.xlsx"
    # 导出分组数据到Excel,不保留索引列
    group.to_excel(filename, index=False)

方案说明

  • groupby('Date')会自动将相同日期的行聚合为子DataFrame,无需手动判断日期拆分逻辑
  • strftime('%Y-%m-%d')将日期转为YYYY-MM-DD格式,确保文件名合法且易识别
  • index=False参数避免将DataFrame的索引写入Excel,让输出文件更整洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 20:05:47