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

Python使用pandas按Group_Number分组生成txt无法写入全部成员问题

代码调整方案

核心问题原因

你原有代码的问题主要有2处:

  • 遍历逻辑错误:逐行遍历整个数据集,每次用w(覆盖写入)模式打开同组文件,导致之前写入的内容被清空,最终只保留最后一条同组数据的内容
  • groupby用法错误:你在定义分组时引用了未声明的变量i,没有正确按Group_Number字段完成分组

调整后完整代码

import pandas as pd

# 仅需读取一次Excel文件,无需重复读取
df = pd.read_excel(r'C:\Users\aross9\Desktop\outFile\GroupRoster05272021.xlsx')
# 输出文件路径模板
file_path_tpl = r'C:\Users\aross9\Desktop\outFile\{}.txt'

# 按Group_Number字段完成分组
for group_num, group_df in df.groupby('Group_Number'):
    # 取当前分组第一行的公共信息(同组的组名、负责人、邮箱都是一致的)
    base_info = group_df.iloc[0]
    # 写入文件
    with open(file_path_tpl.format(group_num), 'w', encoding='utf-8') as f:
        # 先写入组基础信息
        f.write(f"{base_info['Group_Number']},  {base_info['Group_Name']}\n")
        f.write(f"{base_info['Process_Owner']}\n")
        f.write(f"{base_info['Email_Address']}\n\n")
        # 追加写入当前组所有成员的信息
        for _, member_row in group_df.iterrows():
            f.write(f"{member_row['MESSAGING_ID']} {member_row['NAME']}\n")

代码说明

  • 一次性读取完整Excel数据,减少IO开销
  • 直接按Group_Number分组,每次循环拿到的group_df就是当前组的所有行数据
  • 同组的公共信息仅取第一行写入,避免重复
  • 写完基础信息后遍历当前分组的所有行,写入所有成员的ID和姓名
  • 增加encoding='utf-8'参数避免写入中文时出现乱码,如果你不需要可以删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 00:36:06