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

如何用Python按日期列将单个Excel文件拆分为12个月度文件?

Python实现Excel按月份拆分十万行数据

依赖准备

先安装所需的Python库:

pip install pandas openpyxl

核心代码

以下代码可快速处理十万级数据,按日期列拆分出12个对应月份的独立文件:

import pandas as pd

# 读取原始Excel文件,替换为你的实际文件路径
df = pd.read_excel("原始数据.xlsx", engine="openpyxl")

# 确保日期列被正确解析,替换"日期列名"为你表格中的日期列标题
df["日期列名"] = pd.to_datetime(df["日期列名"])

# 提取月份作为分组依据
df["月份"] = df["日期列名"].dt.month

# 按月份分组并保存每个组到独立文件
for month, group in df.groupby("月份"):
    # 移除临时新增的月份列
    group = group.drop("月份", axis=1)
    # 保存为对应月份的Excel文件,格式如"1月数据.xlsx"
    group.to_excel(f"{month}月数据.xlsx", index=False, engine="openpyxl")

补充说明

  • 若你的Excel是.xls格式,将代码中的engine参数改为"xlrd",需额外安装指定版本:pip install xlrd==1.2.0(新版本xlrd不再支持xls格式)
  • 若内存不足无法一次性加载十万行数据,可使用分块读取方案:
import pandas as pd

chunk_size = 10000
writer_dict = {}

# 预先初始化每个月份的文件写入器
for month in range(1, 13):
    writer = pd.ExcelWriter(f"{month}月数据.xlsx", engine="openpyxl")
    writer_dict[month] = writer

# 分块读取原始数据并追加写入对应月份文件
for chunk in pd.read_excel("原始数据.xlsx", chunksize=chunk_size, engine="openpyxl"):
    chunk["日期列名"] = pd.to_datetime(chunk["日期列名"])
    chunk["月份"] = chunk["日期列名"].dt.month
    for month, group in chunk.groupby("月份"):
        group = group.drop("月份", axis=1)
        # 仅在首次写入时添加表头
        group.to_excel(writer_dict[month], index=False, header=not writer_dict[month].sheets)

# 关闭所有写入器,完成文件保存
for writer in writer_dict.values():
    writer.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:25:23