Я преобразовал большой (6 ГБ) кадр данных в файл hdf5. Он содержит около 30 миллионов транзакций от 100 тысяч идентификаторов пользователей за 10 лет. Я хочу воссоздать состояние каждого идентификатора пользователя в 48 разных моментов времени. Так, например, «для каждого идентификатора пользователя, сколько транзакций они имели до «1 января 2012 года»». Это одно сводное поле.
Мой текущий метод состоит в том, чтобы запросить hdf5 для каждого user_id, используя функцию запроса pandas для hdf5, затем циклически проходить каждую дату и выводить сводку в определенный момент времени. Проблема в том, что это занимает слишком много времени для каждого идентификатора пользователя - иногда 10-20 секунд для каждого. Похоже, что запрос hdf5 занимает больше всего времени.
Есть ли способ создать индекс в файле hdf5, чтобы ускорить запрос, или поможет сортировка по user_id? Все манипуляции с данными выполняются в пандах, но я не могу распределить работу между несколькими машинами из-за ограничений среды.