基本上我下载的数据集包含重复的人物,我使用sort
删除了,但这些重复的行也在另一个csv文件中引用,我想删除这些行。这是概述;三个CSV文件:
person.csv :
personID,personName
1,tom
[...]
job.csv :
jobID,jobName
job_1,programmer
[...]
person_job.csv
personID,jobID
1,job_1
[...]
person_job.csv
中的某些personID在person.csv
中不存在。所以,我需要删除person_job.csv
中personID
中person.csv
不存在的行{/ 1}}。
我该怎么做?我在OS X上,我愿意使用任何方法(ruby / perl / awk / python /等等)。
答案 0 :(得分:0)
我是用Ruby做的,这是如何:
在person.csv
在person_job.csv中创建一个ID数组(名为b)
创建a&之间差异的第三个数组b(c = b - a
)。此数组包含我们需要从person_job.csv
从person_job.csv创建一个表:
table = CSV.table('person_job.csv')
如果ID出现在数组c中,则从表中删除:
table.delete_if do |row|
c.include? row[:person_id]
end
将表格写入CSV,我将用它来替换{{1}}:
person_job.csv