Поиск по большой csv базе на python
Есть база csv весом 1,2gb.

Надо выполнить поиск по номеру и вывести все данные желательно каждый столбец в отдельную переменную. Я сделал это таким образом:
number = input(" ")
csv_file=csv.reader(open(filename, 'r', encoding="utf8"))
for row in csv_file:
phone, email, name = ['', '', '']
if number in row[0]:
phone, email, name = res
print(name, phone, email)
break
Это долго. Попробовал через parquet + pandas, вышло в 2 раза быстрее, но с неудобным выводом:
df = dd.read_parquet(filename)
res = df[df['phone']==79999999999].compute()
print(res)
Как я могу оптимизировать код, что бы было быстрее и нужный мне вывод?
P.S. База не будет изменяться. Возможно проще будет перевести csv таблицу в sql таблицу.
Ответы (1 шт):
Автор решения: eri
→ Ссылка
Загрузи в SQL, хотяб в sqlite. Построй индекс и будет искать за секунды.