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

CSV文件数据重排:按水果聚合用户名单问题求助

解决CSV按水果分组整合用户名单的问题

基础实现(用Python内置csv模块)

不用第三方库的话,用内置csv模块就能搞定核心逻辑,关键是正确按水果键累加用户名单,避免覆盖或错误合并:

import csv

# 初始化分组字典:键为水果名,值为对应用户列表
fruit_users = {}

# 读取原CSV文件
with open('input.csv', 'r', newline='', encoding='utf-8') as infile:
    reader = csv.DictReader(infile)
    for row in reader:
        fruit = row['Fruit'].strip()
        name = row['Name'].strip()
        # 水果不在字典里就创建空列表,存在则直接追加用户
        if fruit not in fruit_users:
            fruit_users[fruit] = []
        fruit_users[fruit].append(name)

# 写入新CSV文件
with open('output.csv', 'w', newline='', encoding='utf-8') as outfile:
    writer = csv.writer(outfile)
    # 写入表头
    writer.writerow(['Fruit', 'Names'])
    # 遍历分组字典,将用户列表用分号加空格拼接
    for fruit, names in fruit_users.items():
        writer.writerow([fruit, '; '.join(names)])

更简洁的实现(用pandas)

如果日常处理数据常用pandas,一行分组聚合就能完成,代码更简洁:

import pandas as pd

# 读取原CSV
df = pd.read_csv('input.csv')
# 按Fruit分组,将Name列用'; '拼接
grouped_df = df.groupby('Fruit')['Name'].agg('; '.join).reset_index()
# 重命名列名匹配需求
grouped_df.columns = ['Fruit', 'Names']
# 写入新CSV
grouped_df.to_csv('output.csv', index=False)

你之前出错的可能原因

  • 处理行数据时,没有判断水果是否已存在于字典中,直接用fruit_users[fruit] = [name]覆盖了原有列表,而非用append追加
  • 写入CSV时循环逻辑错误,没有遍历分组后的字典,而是重复写入了同一个全量用户列表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:46:03