Поиск по большой 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. Построй индекс и будет искать за секунды.

→ Ссылка