У меня есть набор данных в CSV, содержащий списки значений в виде строк в одном поле, которое выглядит примерно так:
Id,sequence
1,'1;0;2;6'
2,'0;1'
3,'1;0;9'
В реальном наборе данных, с которым я имею дело, длина последовательности сильно варьируется и может содержать от одного до нескольких тысяч наблюдений. Существует много столбцов, содержащих последовательности, которые хранятся в виде строк.
Я читаю эти строки CSV и разбора, чтобы стать списками, вложенными в Pandas DataFrame. Это займет некоторое время, но я в порядке.
Однако позже, когда я сохраню проанализированные результаты, чтобы засечь, время чтения этого файла рассылки будет очень большим.
Я сталкиваюсь со следующим:
- Чтение необработанного CSV-файла с такой структурой ~ 600 МБ в Pandas занимает около 3
секунд.
- Чтение тех же (необработанных, необработанных) данных из рассола занимает ~ 0,1 секунды.
- Чтение обработанных данных с рассола занимает 8 секунд!
Я пытаюсь найти способ прочитать обработанные данные с диска как можно быстрее.
Уже пробовал:
- Экспериментируйте с различными форматами хранения, но большинство из них не может хранить вложенные структуры. Единственным, что сработало, был msgpack, но это не сильно улучшило производительность.
- Использование структур, отличных от Pandas DataFrame (например, кортеж кортежей), с аналогичной производительностью.
Я не очень привязан к точной структуре данных. Дело в том, что я хотел бы быстро прочитать проанализированные данные с диска непосредственно в Python.