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 - 使用载波版本时堆栈级别太深

java - 在 Java 中合并 CSV 文件与动态 header

Java 用两种模式分割 CSV

r - R 3.0.3 rbind多个csv文件

sql - 从表和引用表中删除重复行 microsoft sql server

redis - 设置 Redis 以进行重复识别

ruby-on-rails - Rails 4 - 语法错误,意外的 tIDENTIFIER,期望输入结束

ruby - 参数错误 : comparison of Hash with Hash failed - Sorting an array of hashes by hash name

ruby-on-rails - 我无法创建文件

c# - 避免添加重复的数据行