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

按列值拆分DataFrame并导出至不同Excel工作表的实现方法

按列值拆分DataFrame并导出至不同Excel工作表的完整方案

嘿,我来给你补全这个完整方案!你已经完成了前期的关键步骤,接下来只需要把这些环节串联起来,就能实现按指定列值拆分DataFrame并分别导出到Excel的不同工作表里。

1. 导入必要的工具库

首先得确保导入pandas,以及支持多工作表写入的openpyxl引擎(如果还没安装,先运行pip install pandas openpyxl):

import pandas as pd
from openpyxl import load_workbook
import os  # 用于后续判断文件是否存在的优化

2. 前期数据处理(优化你已有的代码)

注意:新版pandas里df.sort()已经被弃用了,推荐用sort_values()替代,避免运行报错:

# 按name列排序,确保同名称的数据集中在一起
df.sort_values(by=['name'], inplace=True)
# 设置name为索引但保留原列(这一步其实不是必须的,后面用groupby可以省去)
df.set_index(keys=['name'], drop=False, inplace=True)
# 获取所有唯一的名称列表
unique_names = df['name'].unique().tolist()

3. 核心:循环拆分并导出到Excel

这里用pd.ExcelWriter来创建一个支持多工作表的写入对象,遍历每个唯一名称,拆分出对应数据后写入到以名称命名的工作表中:

# 指定最终保存的Excel文件路径
excel_output = '按名称拆分结果.xlsx'

# 用with语句自动管理文件资源,避免手动关闭的麻烦
with pd.ExcelWriter(excel_output, engine='openpyxl') as writer:
    for name in unique_names:
        # 拆分当前名称对应的DataFrame
        target_df = df.loc[df['name'] == name]
        # 写入工作表,sheet_name直接用名称命名,index=False避免写入索引列
        target_df.to_excel(writer, sheet_name=name, index=False)

4. 进阶优化技巧

技巧1:高效分组替代循环查询

如果你的数据量比较大,用groupby会比先取唯一值再循环查询更高效,还能省去前面的排序和设索引步骤:

with pd.ExcelWriter(excel_output, engine='openpyxl') as writer:
    # 按name列分组,直接遍历每组的名称和对应DataFrame
    for name, group_df in df.groupby('name'):
        group_df.to_excel(writer, sheet_name=name, index=False)

技巧2:支持追加/覆盖已有工作表

如果需要重复运行脚本,不想每次都覆盖整个文件,可以判断文件是否存在,选择追加或替换已有工作表:

if os.path.exists(excel_output):
    # 加载已有工作簿,设置mode='a'表示追加,if_sheet_exists='replace'表示替换重名工作表
    book = load_workbook(excel_output)
    writer = pd.ExcelWriter(excel_output, engine='openpyxl', mode='a', if_sheet_exists='replace')
    writer.book = book
else:
    # 文件不存在则创建新文件
    writer = pd.ExcelWriter(excel_output, engine='openpyxl')

# 执行写入逻辑
for name, group_df in df.groupby('name'):
    group_df.to_excel(writer, sheet_name=name, index=False)

# 手动关闭writer(因为没用with语句)
writer.close()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:41:25