У меня есть два файла CSV, каждый из которых содержит столбцы для даты и времени.
Для КАЖДОЙ строки мне нужно сопоставить время и дату в CSV 1 и CSV 2 и извлечь Weather из CSV 2.
CSV 1:
Date Time Value
2017/04/20 12:00 100
2017/03/20 12:00 250
2017/03/20 12:00 300
2017/02/20 12:00 80
2017/02/20 12:00 500
CSV 2:
Date Time Weather
2017/02/20 12:00 Sunny
2017/02/20 12:00 Sunny
2017/03/20 12:00 Sunny
2017/03/20 12:00 Sunny
2017/04/20 12:00 Sunny
Я не знаю, насколько это эффективно, но первым делом я добавил файлы CSV в два списка Python:
list1 = []
list2 = []
for row in CSV1:
list1.append(row)
for row in CSV2:
list2.append(row)
Затем я выбираю дату и тип для каждой строки в списке list1 и сразу перебираю каждую строку в списке list2 до совпадения элементов.
for row in list1:
published_date = row[0]
published_time = row[1]
for rows in list2:
if published_date == rows[0] and published_time == rows[1]:
"do something with rows[2]"
break
Это работает, но CSV1 имеет 1700 строк, а CSV2 имеет 1 000 000 строк, поэтому этот процесс занимает 150 секунд. Есть ли значительно более быстрый способ?
Я знаю, что есть решения, в которых один элемент должен соответствовать, но здесь их 2, и я не смог настроить одноэлементные решения для работы.
Я новичок в Stack Overflow, поэтому, если я что-то не так сделал в этом сообщении, пожалуйста, сообщите мне.