ruby - 如何在 Ruby 中加载包含两列的 CSV 并将其保存在 2 个数组中

标签 ruby arrays csv

我想加载一个包含两列(每列都有一个名称和一行数字)的 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 的列拆分为两个数组?

最佳答案

这应该可以帮助您创建两列数组,而不会浪费存储空间,将整个文件冗余地读入 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

关于ruby - 如何在 Ruby 中加载包含两列的 CSV 并将其保存在 2 个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10048149/

相关文章:

python - 使用 Ruby 还是不使用 Ruby

c++ - 段错误 : Dynamically allocating large integer array

c++ - 当数组对象的元素存储被重用时,它的生命周期是否结束?

python - 你能改变python中的索引吗?

python - 检查 csv 文件是否具有相同的项目

csv - PowerShell Get-ADUser-属性计数

ruby 和 accdb(MS Access )

Ruby 1.9.2 补丁级别 180 - libyaml 破坏了 yaml 节点引用

ruby - 如何使用 ChunkyPNG 或 RMagick 保存 8 位 PNG

mysql - 将 Excel 工作表导入 phpMyAdmin