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

如何用Python将指定唯一值分组生成不同Excel工作簿

Python按指定分组生成独立Excel工作簿

需求说明

  • 要实现的功能:用Python把表格某一列的指定唯一值分成几组,每组单独生成一个Excel工作簿
  • 输入数据:
data = {'Name': ['Tom', 'nick', 'nick', 'jack'],
        'Age': [20, 21, 19, 18]}
  • 目标输出:
    • 生成Tom组.xlsx:仅包含Tom的一行数据
    • 生成Nick&Jack组.xlsx:包含Nick的两行数据和Jack的一行数据
  • 当前遇到的问题:
    1. 现有代码只能按唯一值生成同一Excel里的多个工作表,无法生成独立的Excel工作簿
    2. 不知道如何将多个唯一值合并到同一个工作簿中

已尝试代码

df1_dict={}

for name in df1['name'].unique():
   name_df1 = df1[df1['name'] == name]
    df1_dict[name] =  name

解决方案

第一步:安装依赖并构造数据表格

先确保安装了pandas,没安装的话在终端执行pip install pandas即可。然后将输入数据转换为pandas可处理的表格:

import pandas as pd

# 把输入数据转为DataFrame表格
data = {'Name': ['Tom', 'nick', 'nick', 'jack'],
        'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)

第二步:定义分组规则

用字典明确每个值对应的分组名称,灵活控制哪些值合并到同一工作簿:

# 分组映射:键是Name列的唯一值,值是对应的分组名称
group_mapping = {
    'Tom': 'Tom组',
    'nick': 'Nick&Jack组',
    'jack': 'Nick&Jack组'
}

第三步:添加分组标签并分组

给原表格新增一列分组标签,再按该列对数据进行分组:

# 给每行数据添加对应的分组标签
df['分组'] = df['Name'].map(group_mapping)

# 按分组标签对数据进行聚合分组
grouped = df.groupby('分组')

第四步:遍历分组生成独立工作簿

逐个处理每个分组,将每组数据保存为独立的Excel文件:

# 遍历每个分组,生成对应的Excel工作簿
for group_name, group_data in grouped:
    # 移除分组列(可选,根据需求决定是否保留)
    output_data = group_data.drop(columns=['分组'])
    # 保存为Excel文件,文件名使用分组名称
    output_data.to_excel(f'{group_name}.xlsx', index=False)

完整代码

import pandas as pd

# 构造输入数据表格
data = {'Name': ['Tom', 'nick', 'nick', 'jack'],
        'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)

# 定义分组规则
group_mapping = {
    'Tom': 'Tom组',
    'nick': 'Nick&Jack组',
    'jack': 'Nick&Jack组'
}

# 添加分组标签并分组
df['分组'] = df['Name'].map(group_mapping)
grouped = df.groupby('分组')

# 生成每个分组的Excel工作簿
for group_name, group_data in grouped:
    output_data = group_data.drop(columns=['分组'])
    output_data.to_excel(f'{group_name}.xlsx', index=False)

代码说明

  • map(group_mapping):快速将Name列的值映射为对应分组名称,实现多值合并分组
  • groupby('分组'):按分组列将数据聚合成多个子表格
  • to_excel():将每个子表格保存为独立Excel工作簿,index=False表示不保存表格自带的行索引
  • 用分组名称作为文件名,直观识别文件内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 06:10:37