何千もの列を含むいくつかの大きな csv ファイルがあり、それらをインポートしてから、列の内容に基づいて列全体を削除する必要があります。Rubyでこれを処理する簡単な方法はありますか?
データを転置してから行を削除することもできましたが、もっと構文的に甘い方法があるかどうか疑問に思っていました。
行を反復処理し、 で列を削除する必要がありますArray#slice!
。
何かのようなもの:
my_array.each do |row|
row.slice!(3) if <insert condition>
end
するべきです。
最終的に転置を使用し、次にreverse_eachを使用して下の行のスライスから処理しました。削除が必要な行。助けてくれてありがとう。
csv のすべての列をデータベースの列に割り当てる必要があるため、csv で不要な列を無視するだけで済みます。このブログ投稿には良い例があります。
暗闇の中でのショットですが、基準が十分に単純で、データをサンプリングして削除する必要がある列を確認できる場合は、最初に列のインポートをスキップできます。それ以外の方法であるスライスよりも。