Рассмотрим следующий пример:
Подготовьте данные:
import string
import random
import pandas as pd
matrix = np.random.random((100, 3000))
my_cols = [random.choice(string.ascii_uppercase) for x in range(matrix.shape[1])]
mydf = pd.DataFrame(matrix, columns=my_cols)
mydf['something'] = 'hello_world'
Установите максимальное сжатие для HDF5:
store = pd.HDFStore('myfile.h5',complevel=9, complib='bzip2')
store['mydf'] = mydf
store.close()
Сохранить также в CSV:
mydf.to_csv('myfile.csv', sep=':')
Результат:
-
myfile.csv
имеет размер 5.6 МБ. -
myfile.h5
имеет размер 11 МБ.
Разница возрастает по мере увеличения наборов данных.
Я попытался использовать другие методы и уровни сжатия. Это ошибка? (Я использую Pandas 0.11 и самую последнюю стабильную версию HDF5 и Python).