前提・実現したいこと
CSVファイルの読み込み後の処理を早くしたいです。
保存してあるCSVファイル(ファイル名:kudamono.csv)
no, date, kakaku, name
1, 20190101, 300yen, ichigo,
2, 20190102, 310yen, mikan,
3, 20190102, 315yen, budou,
4, 20190102, 310yen, ringo,
5, 20190103, 308yen, suika,
・
・
50000, 20191230, 304yen, orenge
といった50000行のcsvのファイルの、
2列目のdateにある特定の日付が入っている行のみを出力したいと考えています。
*例えば、20190102のデータが欲しい時には次の3つが表示されるようにする。
2, 20190102, 310yen, mikan,
3, 20190102, 315yen, budou,
4, 20190102, 310yen, ringo,
いまのコードでは時間がかかってしまうので、何か良い方法はないでしょうか?
実際にはこれら作業を2列目の日付を変え繰り返し行うので、いまのコードだと非常に遅いです。皆様の知恵を貸して頂けますと幸いです。
発生している問題・エラーメッセージ
処理に時間がかかる
該当のソースコード
Ruby
1kakaku = CSV.read("data/kudamono.csv", headers: true) 2k = 0 350000.times{ 4 if kakaku[k]["date/time"] == ”検索したい日付を入力” 5 puts csv[k] 6 end 7 k += 1 8}
補足情報(FW/ツールのバージョンなど)
使用しているソフトはRubyMineです。全て独学なので基礎が抜けているかもしれません。
回答2件
あなたの回答
tips
プレビュー