3

我想加载一个包含两列(每列都有一个名称和一行数字)的 CSV 文件,并且只将两列的数字保存在两个不同的数组中。然后我想对这两列中的数据进行一些计算,使用两个数组来保存每列的数字。

这是我仍然拥有的:

require 'csv'
filename = 'file.csv'
csv_data = CSV.read(filename, :col_sep => ";")
csv_data.shift
csv_data.each_with_index { |column, index_c|
  average = 0
  column.each_with_index{ |element, index_e|
    csv_data[index_c][index_e] = element.to_i
  }
}
csv_data = csv_data.transpose

如何拆分csv_data两个数组中的列?

4

1 回答 1

3

这应该可以帮助您创建两列数组,而不会浪费存储将整个文件冗余读取到 csv_data 中。

require 'csv'
filename = 'file.csv'
arr1 = []
arr2 = []
CSV.foreach(filename, :col_sep => ";", :return_headers => false) do |row|
  arr1 << row[0].to_i
  arr2 << row[1].to_i
end
于 2012-04-06T21:00:26.817 回答