Рубрики
Без рубрики

Сохраните объекты Pandas в HDF5

Что такое HDF5? HDF означает «иерархический формат данных», и он был разработан для хранения Anorm … Tagged с Python, GSOC, Tardis.

Что такое HDF5?

HDF означает «Иерархический формат данных» и он был разработан для хранения огромных объемов данных. Первоначально был разработан в Национальный центр по суперкомпьютирующим приложениям И теперь это поддерживается Группа HDF , некоммерческая корпорация.

Зачем использовать HDF5?

  • На своем основном HDF5 находится спецификация бинарного типа файла.

  • У него есть возможность Хранить много наборов данных , определенное пользователем Метаданные , оптимизированный ввод -вывод и возможность запросить его содержимое.

  • Многие языки программирования имеют инструменты для работы с HDF.

  • HDF позволяет наборам данных жить в вложенной структуре деревьев. По сути, HDF5 является файловой системой в файле. «Папки» внутри этих файловых систем называются группы , а также иногда узлы или Ключи (или, по крайней мере, эти термины используются нечетливо).

Ящик для инструментов

Есть как минимум три пакета Python, которые могут обрабатывать файлы HDF5: H5Py , Pytables и Панды Анкет

Кроме того, есть несколько инструментов для их визуализации: HdfViewer (Ява), HDFCompass (Python) и Aitables (Python). Их можно найти в репозиториях Ubuntu, но часто они не работают, как и ожидалось.

К счастью, Aitables доступен в Conda-Forge Пакет канал и работает безупречно.

Пример № 1: Сбросьте DataFrame

import pandas as pd

# Create an example DataFrame
data = {'A': [1,2,3], 'B': [4,5,6]}
df = pd.DataFrame.from_records(data)

with pd.HDFStore('test.h5', mode='w') as f:
    f.put(key='/new_dataset', df)

Пример № 2: Напишите метаданные

Возможно, одним из самых интересных аспектов HDF является возможность хранить метаданные*.

meta = { 'date': '21/06/2019', 'author': 'epassaro'}

with pd.HDFStore('test.h5', mode='a') as f:
    f.get_storer('/new_dataset').attrs.metadata = meta

* Старый старый формат также может сделать это!

Пример № 3: Напишите метаданные в root (“/”)

meta = { 'date': '21/06/2019', 'author': 'epassaro'}

with pd.HDFStore('test.h5', mode='a') as f:
    f.root._v_attrs['author'] = 'epassaro' 

Оригинал: “https://dev.to/epassaro/gsoc-2019-june-ii-fjk”