У меня есть большое количество фреймов данных, экспортированных в серию файлов HDFStore через Pandas. Мне нужно иметь возможность быстро вытащить самую последнюю запись, для каждой из этих фреймов по запросу.Pandas HDFStore - Получить последнюю запись из нескольких таблиц
Установка:
<class 'pandas.io.pytables.HDFStore'>
File path: /data/storage_X100.hdf
/X1 frame_table (typ->appendable,nrows->2652,ncols->1,indexers->[index])
/XX frame_table (typ->appendable,nrows->2652,ncols->3,indexers->[index])
/Y1 frame_table (typ->appendable,nrows->2652,ncols->2,indexers->[index])
/YY frame_table (typ->appendable,nrows->2652,ncols->3,indexers->[index])
Я хранение примерно 100 кадров данных в каждом файле HDF, и имеет около 5000 файлов через запуск. Каждый из кадров данных в HDFStore индексируется с помощью DateTimeIndex.
Для одного файла, я в настоящее время цикл по HDFStore.keys()
, а затем запрашивая dataframe с tail(1)
так:
store = pandas.HDFStore(filename)
lastrecs = {}
for key in store.keys():
last = store[key].tail(1)
lastrecs[key] = last
Есть ли лучший способ сделать это, возможно, с HDFStore.select_as_multiple
? Даже выбор последней записи без вытягивания всего кадра данных для хвоста, вероятно, ускорит работу. Как это может быть сделано?
Спасибо - старт/стоп работает намного лучше, чем делать хвост. – bazel