Мне просто интересно, есть ли лучший способ сделать этот алгоритм. Я считаю, что мне нужно делать этот тип операции довольно часто, и то, как я сейчас занимаюсь, занимает много часов, так как я считаю, что это будет считаться алгоритмом n^2. Я приложу его ниже.Более эффективный способ выполнения этого алгоритма поиска?
import csv
with open("location1", 'r') as main:
csvMain = csv.reader(main)
mainList = list(csvMain)
with open("location2", 'r') as anno:
csvAnno = csv.reader(anno)
annoList = list(csvAnno)
tempList = []
output = []
for full in mainList:
geneName = full[2].lower()
for annot in annoList:
if geneName == annot[2].lower():
tempList.extend(full)
tempList.append(annot[3])
tempList.append(annot[4])
tempList.append(annot[5])
tempList.append(annot[6])
output.append(tempList)
for i in tempList:
del i
with open("location3", 'w') as final:
a = csv.writer(final, delimiter=',')
a.writerows(output)
У меня есть два CSV-файлы, содержащие 15000 строк каждый, и я ищу, чтобы сравнить столбцы из каждого, и если они совпадают, сцепить конец второго CSV к концу первого. Любая помощь будет принята с благодарностью!
Спасибо!
Pro: Работает с родными библиотеками и не имеет внешних зависимостей. Кон: Вы можете сделать это намного проще и быстрее с помощью Pandas (как указано ниже). Оба, сравнение и добавление (я думаю, это будет 3 или 4 строки кода) – Kelvin