在ruby中打开两个csv文件,并将两个文件中的一些列复制到第三个文件中
打开两个csv文件。两个文件中的字段名称和值标签、样本相同,将“旧”和“新”的平均值组合到第三个csv。 我可以找到一些显示csv更快的结果,但这对我来说是全新的。如果该行只存在于一个文件中,我希望它保留在新文件中 例如: File1.csv在ruby中打开两个csv文件,并将两个文件中的一些列复制到第三个文件中,ruby,Ruby,打开两个csv文件。两个文件中的字段名称和值标签、样本相同,将“旧”和“新”的平均值组合到第三个csv。 我可以找到一些显示csv更快的结果,但这对我来说是全新的。如果该行只存在于一个文件中,我希望它保留在新文件中 例如: File1.csv label,sample,average_old t1,10,12 t2,11,13 文件2.csv label,sample,average_new t1,10,16 t2,11,15 File3.csv应该是 label,sample,averag
label,sample,average_old
t1,10,12
t2,11,13
文件2.csv
label,sample,average_new
t1,10,16
t2,11,15
File3.csv应该是
label,sample,average_old,average_new
t1,10,12,16
t2,11,13,15
需要“csv”
foreach('/tmp/File2.CSV').inject(
foreach('/tmp/File1.CSV').inject({})do| memo,第|行
(备忘录[第一行]| |=[])
require 'csv'
CSV.foreach('/tmp/File2.csv').inject(
CSV.foreach('/tmp/File1.csv').inject({}) do |memo, row|
(memo[row.first] ||= []) << row
memo
end
) do |memo, row|
(memo[row.first] ||= []) << row
memo
end.map(&:flatten).map(&:uniq)
#⇒ [
# ["label", "sample", "average_old", "average_new"],
# ["t1", "10", "12", "16"],
# ["t2", "11", "13", "15"]
# ]