首页 > 解决方案 > 将 CSV 的多行合并为一个

问题描述

我有一个 CSV,其中一个学生出现在多行中。目标是获得一个 CSV,其中学生的名字只出现一次,并创建一个“运动”列,其中学生练习的所有运动由空格分隔(如照片)

CSV

最终的 csv

标签: pythoncsvrows

解决方案


我不会发布完整的解决方案,因为这听起来像是一个家庭作业问题。如果这实际上是针对学校作业,请编辑您的问题以包含该信息。

根据您的描述,问题可以分为三个步骤,每个步骤都可以独立编写为您的解决方案中的代码。

  1. 解析 CSV 文件
  2. 创建减少行数并添加新列的新数据结构
  3. 将数据输出到新的 CSV 文件。

第 1 步和第 3 步是最简单的。您将需要使用with open('file', 'r'),list.split()",".join()

对于第 2 步,如果您从字典的角度来思考,问题会更容易理解。如果您可以将原始数据(即行列表)转换为行字典,则更容易检测重复项。所有字典都必须有一个唯一的键(在这种情况下是列),并且您已经知道您有一个希望唯一但不是唯一的键(学生姓名)。

第 2 步的代码将遍历行列表,使用student_name作为唯一键将每一行添加到字典中。如果该键已存在,则无需添加新条目,您将需要修改现有条目的“运动”字段。


推荐阅读