ruby - 删除并合并 CSV 文件中的重复记录

标签 ruby csv duplicates

<分区>

数据集有重复记录。可以有多个 同一联系人的副本。

如何删除重复的记录,并为每个记录建立一条记录 具有最大可能字段的名称。

示例输入文件:

FN,    LN,    phone1,      phone2,       email,        city  
Matt,  x,     9800000000,            ,              ,  NYC  
Matt,   ,     9800000001,  8822334490,              ,  
Matt,  x,     9845012345,  9800000000,              ,  
Matt,   ,     9800000000,            , xyz@gmail.com,  NYC  
Matt,  x,               ,  9845012345, xyz@gmail.com,  NYC  
Matt,  x,     9845012345,  9800000000,              ,  NYC  
Matt,  y,     9800000001,            ,              ,  NYC  
kyle,  z,     8759235755,            ,              ,  NJ

示例输出:

FN,    LN,  phone1,      phone2,    email,         city  
Matt,   x,  9800000000, 9845012345, xyz@gmail.com, NYC  
Matt,   y,  9800000001, 8822334490,              , NYC  
kyle,   z,  8759235755,           ,              , NJ

最佳答案

查看了 find_or_create_by

find_or_create_by 方法检查是否存在具有属性的记录。如果没有,则调用 create。让我们看一个例子。

假设您要查找名为“Andy”的客户,如果没有,请创建一个。你可以通过运行来做到这一点:

Client.find_or_create_by(first_name: 'Andy')
# => #<Client id: 1, first_name: "Andy", orders_count: 0, locked: true, created_at: "2011-08-30 06:09:27", updated_at: "2011-08-30 06:09:27">

关于ruby - 删除并合并 CSV 文件中的重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20729974/

相关文章:

ruby-on-rails - ruby on rails 中的 Controller 和 Action 有什么区别?

ruby - 为什么 ruby​​ 只返回正则表达式的最后一个匹配项?

ruby-on-rails - 编辑操作中没有 respond_to block (使用脚手架生成)?

python - 如何将 2 个不同文件中的列添加到 CSV python 的输出中

mysql - 删除 mysql 中 3 列的 concat 相同的重复记录?

ruby - 如何测试带有参数的创建 Action 的康康舞能力?

PHP 到 CSV 输出下载

javascript - 在 Javascript 中将 CSV 转换为嵌套的 JSON

java - 下载前如何检查来自 URL 的重复文件

android - 重复条目 IInAppBillingService