【Ruby3.x】CSV::Table::values_at()メソッドの使い方
values_atメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
values_atメソッドは、RubyのCSV::Tableオブジェクトに格納されたデータから、指定された複数のカラム(列)の値をまとめて取得するメソッドです。CSV::Tableは、CSV(Comma Separated Values)形式のデータを、ヘッダ行とデータ行を持つ表形式で扱うためのクラスです。
このメソッドは、引数として1つ以上のカラム名を文字列で受け取ります。例えば、"商品名"や"単価"といったカラム名を複数指定することができます。メソッドは、指定されたすべてのカラムについて、CSV::Table内の各データ行から対応する値を取得し、それらを「配列の配列」として返します。
具体的には、返される配列の外側の配列は各データ行に対応し、内側の配列は各データ行において引数で指定されたカラム順の値を含みます。例えば、table.values_at("商品名", "単価")のように呼び出すと、各データ行から「商品名」と「単価」の値が順番に取得され、[["商品A", 100], ["商品B", 200], ...]のような形式で結果が得られます。
このメソッドを使用することで、CSVデータから特定の列の情報を効率的に抽出できます。システムエンジニアを目指す初心者の方々にとって、CSVファイルを扱う際に、データの中から必要な列のみをまとめて取得したい場面で非常に役立つでしょう。
構文(syntax)
1require 'csv' 2 3csv_data = "header1,header2,header3\nvalueA1,valueA2,valueA3\nvalueB1,valueB2,valueB3" 4table = CSV.parse(csv_data, headers: true) 5p table.values_at('header1', 'header3')
引数(parameters)
*indices_or_headers
- indices_or_headers: 取得したい行のインデックス(数値)またはヘッダー名(文字列)を複数指定します。
戻り値(return)
Array
指定されたインデックスに対応する行の値を格納した配列を返します。