【Ruby3.x】CSV::filter()メソッドの使い方
filterメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
filterメソッドはCSVクラスのインスタンスに対して、特定の条件に合致する行のみを抽出し、新しいCSV::Tableオブジェクトとして返すことを実行するメソッドです。このメソッドは通常、ブロックを受け取り、CSVファイルの各行をブロックの引数であるCSV::Rowオブジェクトとして渡します。ブロック内で定義された条件式が真(true)を返した場合、その行はフィルタリング結果として採用されます。結果として得られるのは、元のCSVデータから条件に合う行だけが厳選された新しいCSV::Tableオブジェクトです。元のCSVオブジェクトは変更されず、非破壊的にデータの抽出が行えます。例えば、年齢が特定の数値以上の顧客データや、特定の商品カテゴリのリストなど、大量のCSVデータの中から必要な情報だけを効率的に選び出したい場合に非常に役立ちます。システムエンジニアの業務では、ログファイルの解析やデータベースからのエクスポートデータ処理など、特定の条件に基づくデータ抽出が頻繁に発生するため、この機能はデータの操作と管理において基礎的かつ重要な役割を果たします。
構文(syntax)
1require 'csv' 2 3# input_source は CSV 形式の文字列、IO オブジェクト、またはファイルパスを想定 4# headers: true はヘッダ行を処理することを意味するオプション 5# ブロックは各行 (CSV::Row オブジェクト) を受け取り、行を含めるかどうかを真偽値で返す 6CSV.filter(input_source, headers: true) do |row| 7 row['column_name'] == 'desired_value' && row['another_column'].to_i > 100 8end
引数(parameters)
input = $stdin, output = $stdout, **options
- input: CSVデータの入力元。デフォルトは標準入力($stdin)。
- output: CSVデータの出力先。デフォルトは標準出力($stdout)。
- options: filter処理の挙動を制御するオプションのハッシュ。
戻り値(return)
戻り値なし
戻り値はありません