Python: создание словаря с несколькими ответами (вложенные словари?)

Я пытаюсь выяснить, как наиболее эффективно искать строки в файле CSV с 23 миллионами строк в python.

Файл представляет собой список кодов ZIP + 4 и некоторую информацию о каждом, в основном их идентификатор FIPS, аббревиатуру штата и округ.

Например, строка 1 — {02468,1405,25,017,25017,MA,MIDDLESEX}, эти значения — {5_Dig_Zip,+4_Dig_Zip,StateFIPS,CountyFIPS,TotalFIPS,State_Abbrev,County}.

Я хотел бы создать словарь или какую-либо другую структуру данных, чтобы иметь возможность запрашивать:

data["02468"] --> и вернуть все строки, где 5-значный почтовый индекс равен 02468, или data["02468"]["1405"] и вернуть только эту строку.

Данные в настоящее время находятся в большом списке списков. Кажется, я хотел бы использовать вложенные словари, но я не совсем уверен, куда идти.

Спасибо!


person Marty Sullaway    schedule 11.05.2020    source источник
comment
23 миллиона записей? Вам было бы намного лучше хранить их в базе данных и использовать функции запросов базы данных.   -  person Rusty Widebottom    schedule 11.05.2020


Ответы (1)


Pythonic: создайте фрейм данных pandas с мультииндексом (первый уровень: 5-значный почтовый индекс, второй уровень — 4-значное расширение). Менее питонический, но простой: создайте базу данных sqlite и запросите ее обычным способом.

person Igor Rivin    schedule 11.05.2020