根据Ruby中的列删除重复项

ben*_*esh 3 ruby csv duplicate-removal

我的问题与类似.基本上有一个CSV文件,但有重复的PID,但我不能这样做.uniq:

File.open("new.csv", "w+") { |file| file.puts File.readlines("old.csv").uniq }
Run Code Online (Sandbox Code Playgroud)

因为线条不同.我是Ruby的新手,想知道是否有一种优雅的方法可以根据第一列删除整行?或者我是否必须遍历每一行并查找重复的PID?

Sam*_*ane 8

您可以传递uniq一个块来指定它将删除重复元素的要求.

File.open("old.csv", "w+") do |file|
  file.puts File.readlines("csv.csv").uniq! { |s| s[/^\d+/ ] }
end
Run Code Online (Sandbox Code Playgroud)

uniq文档中所述.

替换/^\d+/任何适合您的正则表达式.