gpt4 book ai didi

ruby - 按 id ruby​​ 合并行 csv

转载 作者:太空宇宙 更新时间:2023-11-03 17:38:09 24 4
gpt4 key购买 nike

我有一个 .csv 文件,为简单起见,它包含两个字段:ID 和注释。 id 的行是重复的,其中每个注释字段都从生成它的任何表中遇到最大字符,并且需要另一行。我现在需要使用 Ruby 将关联注释合并在一起,从而为每个唯一 ID 创建一行。

为了说明,我正在尝试使用 Ruby 来实现:

编号 |评论
1 |片段一
1 |片段2
2 |片段一
3 |片段一
3 |片段2
3 |片段 3

进入这个:

编号 |评论
1 |片段 1 片段 2
2 |片段一
3 |片段 1 片段 2 片段 3

我已经接近找到使用 inject({}) 和 hashmap 执行此操作的方法,但仍在努力正确合并所有数据。与此同时,我的代码似乎变得过于复杂,包含多个散列和数组,无法对选定的行进行合并。

实现这种类型的行合并的最好/最简单的方法是什么?可以只用数组来完成吗?

非常希望获得有关在 Ruby 中通常如何执行此操作的建议。

最佳答案

保留标题并按 ID 使用分组:

rows = CSV.read 'comment.csv', :headers => true
rows.group_by{|row| row['ID']}.values.each do |group|
puts [group.first['ID'], group.map{|r| r['COMMENT']} * ' '] * ' | '
end

您可以使用 0 和 1,但我认为使用 header 字段名称更清晰。

关于ruby - 按 id ruby​​ 合并行 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10973182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com