35766


rubyの初学者で、csv機能について、勉強しており不明点がありどなたかご教授頂ければと存じます

質問  
読み込んだcsvへ

1:列を追加  
2:行番号を取得し、１で取得した列へ値を追加  
3:コード 番地列を削除したいのですが、

リファレンスのdeleteの部分を理解する事ができず、どなたかご教授頂ければと存じます。

そもそもやりたい事  
csvを読み込み、加工し、別ファイルで加工したcsvを保存

求めているｃｓｖの中身

[code]

    行番号,都道府県,住所
    1,北海道,札幌市中央区
    2,北海道,札幌市中央区
    
[/code]

  
  
以下読み込みcsvとコード

sample.csv

[code]

    コード,都道府県,住所,番地
    1101,北海道,札幌市中央区,旭ケ丘
    1101,北海道,札幌市中央区,大通東
    
[/code]

  
  
コード

[code]

    require 'csv'
    
    読み込みファイル名
    data_list = CSV.read('sample.csv')
    
    ここに処理を記載？
    
    生成ファイル名
    file_path = 'index_db.csv'
    
    CSV.open(file_path, 'wb') do |csv|
      data_list.each do |rec|
        csv << rec
      end
    end
    
[/code]

※前提として、ruby（バージョン２）のみの対応を考えています。

[参照リンク](https://docs.ruby-
lang.org/ja/latest/class/CSV=3a=3aTable.html#I_DELETE)


CC BY-SA 3.0
2017-06-20T11:47:18.637
35751
2017-06-21T02:29:24.220
2017-06-21T01:28:56.927
20360
20360
question
ruby
Rubyで読み込んだCSVの行番号の列を追加し、指定列以外削除したい


CSV.table を使う例など。

[code]

    require 'csv'
    
    tbl = CSV.table('sample.csv',
                    header_converters: lambda {|h|
                      h == 'コード' ? '行番号' : h
                    })
    tbl.each_with_index{|row, i| row['行番号'] = i + 1}
    tbl.delete('番地')
    
    file_path = 'index_db.csv'
    File.open(file_path, 'wb'){|f| f.puts(tbl.to_csv)}
    
[/code]


CC BY-SA 3.0
2017-06-21T02:29:24.220
35766
2017-06-21T02:29:24.220
35751
answer