2

我从一个 CSV 文件开始,我将其读入 CSV::Table,104 列,并希望将其过滤为三个:

filtered_data = csv.map { |row| row.fields(:x,:y:,:z) }

然后我想x从纪元时间转换为常规格林威治标准时间。我这样做是使用:

filtered_data.each do |thing|
  thing[0] = Time.at(thing[0]).to_datetime
end

从而产生:

[[converted_x, y,z],[converted_x, y, z]] 

是否有另一种使用 map 函数的方法,或者这是首选的解决方案?


使用杰里米的回答我现在有:

filtered_data.map { |x,y,z| [Time.at(x).to_datetime,y,z] } 

然后使用拒绝进一步过滤:

filtered_data.reject { |x,y,z| [x,y, z == '\\ '] }
4

1 回答 1

2
filtered_data.map do |x, y, z|
  [Time.at(x).to_datetime, y, z]
end
于 2012-09-28T14:40:47.667 回答