假设我有一个这样的 .csv 文件,将其命名为 A.csv
1234 a d g j m p s
5678 b e h k n q t
9012 c f i l o r u
还有一个,叫它B.csv,比如
1234 g a q o
NULL 0 0 0 0
NULL 0 0 0 0
9012 l h k p
我只想在第一列的 ID 匹配的地方加入,不管它们是否在同一行号中。重要的是要注意 B.csv
的 id ⊆ A.csv
的 id
最佳答案
这是我提出的解决方案:
require 'csv'
h = {}
CSV.foreach("path/to/A.csv") do |row|
h[row.shift] = row
end
CSV.foreach("path/to/B.csv") do |row|
next unless h.key?(row[0])
h[row.shift] << row
end
h.each do |k,_|
h[k].flatten!
end
h
=>{1234=>["a", "d", "g", "j", "m", "p", "s", "g", "a", "q", "o"], 5678=>["b", "e", "h", "k", "n", "q", "t"], 9012=>["c", "f", "i", "l", "o", "r", "u", "l", "h", "k", "p"]}
关于mysql - 当各自的行号不匹配时,通过 id 在 Ruby 中加入两个 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38988192/