Я собираюсь предвосхитить, что я все еще изучаю ruby.
Я пишу скрипт для анализа .csv и определения возможных дублирующих записей в наборе данных.
У меня есть файл .csv с заголовками, поэтому я анализирую данные, чтобы получить доступ к каждой строке, используя заголовок как таковой:
@contact_table = CSV.parse(File.read("app/data/file.csv"), headers: true)
# Prints all last names in table
puts contact_table['last_name']
Я пытаюсь перебрать каждую строку втаблицу и определите, похожа ли фамилия, по которой я сейчас перебираю, на следующую фамилию, но у меня возникли проблемы с этим.Я предполагаю, что способ, которым я обращаюсь с этим, как будто это массив, но я проверил тип, и это CSV :: Row.
пример (это не работает):
@contact_table.each_with_index do |c, i|
puts "first contact is #{c['last_name']}, second contact is #{c[i + 1]['last_name']}"
end
Я понял, что это не работает так, потому что таблица не массив, это CSV :: Row, как яупомянутый ранее.Есть ли способ, который может достичь этого?Сейчас я действительно отключился.
Мой CSV выглядит примерно так:
id,first_name,last_name,company,email,address1,address2,zip,city,state_long,state,phone
1,Donalt,Canter,Gottlieb Group,dcanter0@nydailynews.com,9 Homewood Alley,,50335,Des Moines,Iowa,IA,515-601-4495
2,Daphene,McArthur,"West, Schimmel and Rath",dmcarthur1@twitter.com,43 Grover Parkway,,30311,Atlanta,Georgia,GA,770-271-7837