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ściRóż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).