У меня есть 2 CSV-файла, каждый из которых содержит только 1 столбец, как показано ниже:
CSV-файл 1: adam3us.csv
created_at
6/7/2018 19:00
6/6/2018 12:00
6/6/2018 9:00
6/6/2018 9:00
6/6/2018 5:00
6/5/2018 16:00
6/5/2018 7:00
6/4/2018 16:00
CSV-файл 2: Bitcoin Hourly Based
created_at
1/8/2017 0:00
1/8/2017 1:00
1/8/2017 2:00
1/8/2017 3:00
1/8/2017 4:00
1/8/2017 5:00
1/8/2017 6:00
6/7/2018 19:00
Я пытаюсь написать скрипт на python, который будет сравнивать каждое значение файла CSV 2 с каждой записью в файле CSV 1, используя цикл, и если записи совпадают, должен увеличить объявленную переменную с именем count, а затем записать в новый файл csv, с одним столбцом create_at, содержащим одинаковое время для обоих файлов csv, и вторым столбцом со значением count.
Например,1-я итерация возьмет 1-ую строку csv-файла 2, т. е. 7 июня 2008 г. 19:00, и сравнит ее значение с каждой строкой, присутствующей в csv-файле 1. Если 1-я строка csv-файла 2 соответствует какой-либо строкеCSV-файл 1, то переменная счетчика должна быть увеличена.В этом случае он сопоставит 1-ю строку файла CSV 2 с последней строкой файла CSV 1 и увеличит счетчик с 0 до 1 и запишет значение create_at и значение счетчика в новый отдельный файл CSV с именем output,Выходной файл для этого примера должен выглядеть следующим образом:
output.csv
created_at count
6/7/2018 19:00 1
Переменная count должна быть установлена в 0 для каждой итерации и процессадолжен повторяться для каждой итерации.
Мой код, который у меня есть, выглядит следующим образом:
import csv
count=0
path1 = r'C:\Users\Ahmed Ismail Khalid\Desktop\Bullcrap Testing Delete Later\Bitcoin Prices Hourly Based.csv'
path2 = r'C:\Users\Ahmed Ismail Khalid\Desktop\Bullcrap Testing Delete Later\adam3us.csv'
path3 = r'C:\Users\Ahmed Ismail Khalid\Desktop\output.csv'
with open(path1,'rt',encoding='utf-8') as csvin:
reader1 = csv.reader(csvin)
for row in reader1:
b=row[0]
with open(path2,'rt',encoding='utf-8') as csvinpu:
with open(path3, 'w', newline='',encoding='utf-8') as csvoutput:
writer = csv.writer(csvoutput, lineterminator='\n')
reader2 = csv.reader(csvinpu)
all = []
row = next(reader2)
row.append('count')
all.append(row)
for row in reader2:
d=row[0]
if(b==d) :
count+=1
row.append(count)
all.append(row)
else:
row.append(count)
all.append(row)
writer.writerows(all)
Любая и вся помощь будет принята.
Спасибо