私は処理する必要があるいくつかのCSVデータを持っており、重複したものと一致する方法を見つけ出すのに問題があります。ruby CSV重複行解析
データビットのようになります。
line id name item_1 item_2 item_3 item_4
1 251 john foo foo foo foo
2 251 john foo bar bar bar
3 251 john foo bar baz baz
4 251 john foo bar baz pat
線1-3は、この場合、重複しています。この場合
line id name item_1 item_2 item_3 item_4
5 347 bill foo foo foo foo
6 347 bill foo bar bar bar
のみライン5重複
line id name item_1 item_2 item_3 item_4
7 251 mary foo foo foo foo
8 251 mary foo bar bar bar
9 251 mary foo bar baz baz
あり、ここでのパターンは、新しい「項目」 前の行を追加した場合のライン7及び8はとても基本的に重複
あります重複しています。 私は関係なく、彼らは
を持っているどのように多くのアイテムの私はRubyは、次のように1.9.3使用していますが、それぞれの人のための単一の行で終わるしたい:
require 'csv'
puts "loading data"
people = CSV.read('input-file.csv')
CSV.open("output-file", "wb") do |csv|
#write the first row (header) to the output file
csv << people[0]
people.each do |p|
... logic to test for dupe ...
csv << p.unique
end
end
"複製"という意味を明確にすることはできますか?私はここで正しい単語が使われているかどうかはわかりません。なぜなら、重複は通常、データの正確なコピーを意味します。したがって、1行は重複することはできませんが、1行は別の行の複製になります。しかし、あなたの例では、重複する行については言及していないので、データと関係がありますが、意味が分かりません。 –
ええ、私は一意であると思いますか凝縮されているか何か:)混乱のために申し訳ありません – sysconfig
あなたは人々のユニークなリストを探していますか、それともそれらのアイテムのリストを探していますか?項目のリストによって行が重複しているかどうかを判断するルールは何ですか?結果はファイル内の行の順序に依存しますか? –