HDF5 zajmuje więcej miejsca niż CSV?

Rozważ następujący przykład:

Przygotuj dane:
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'
Ustaw najwyższą możliwą kompresję dla HDF5:
store = pd.HDFStore('myfile.h5',complevel=9, complib='bzip2')
store['mydf'] = mydf
store.close()
Zapisz także w CSV:
mydf.to_csv('myfile.csv', sep=':')

Wynik to:

myfile.csv jest 5,6 MB dużymyfile.h5 ma 11 MB wielkości

Różnica rośnie wraz ze wzrostem zbiorów danych.

Próbowałem z innymi metodami i poziomami kompresji. Czy to błąd? (Używam Pandas 0.11 i najnowszej stabilnej wersji HDF5 i Pythona).

questionAnswers(1)

yourAnswerToTheQuestion