ruby初心者です。
old.csvを読み込んでidが重複する行を削除した
新しいnew.csvというファイルを生成したい。
と言った内容になります。
例えば…
id | text | price |
---|---|---|
111 | グッド | 1000 |
222 | ベリーグッド | 2000 |
333 | ダメ | 500 |
111 | グッド | 1000 |
上記のようなold.csvがあったとして
rubyを使って
id | text | price |
---|---|---|
111 | グッド | 1000 |
222 | ベリーグッド | 2000 |
333 | ダメ | 500 |
というnew.csvを生成したいということです。
idが111の重複行を削除するということです。
現状は下記のような状態です。
ruby
1require 'csv' 2 3puts "start..." 4intro_csv = CSV.generate do |csv| 5 CSV.foreach('old.csv', headers: true) do |data| 6 intro_msg = [ 7 data["id"], 8 data["text"], 9 data["price"], 10 ] 11 if #ここに重複したidをnextするための記述?ここをどうすればいいのか…。そもそもこのやり方でいいのか不明…。 12 next 13 end 14 csv << intro_msg 15 end 16end 17 18File.open("new.csv", 'w') do |file| 19 file.write(intro_csv) 20end 21 22puts "complete! See new.csv."
intro_msgに配列で入れることは出来るのですがその後にidが重複した場合に飛ばす処理の仕方がわかりません。
どなたかご教授お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/24 10:20
2017/05/24 10:27
2017/05/24 10:42
2017/05/24 14:32