Что такое 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”