HDF5 braucht mehr Platz als CSV?

Betrachten Sie das folgende Beispiel:

Bereiten Sie die Daten vor:
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'
Stellen Sie die höchstmögliche Komprimierung für HDF5 ein:
store = pd.HDFStore('myfile.h5',complevel=9, complib='bzip2')
store['mydf'] = mydf
store.close()
Speichern Sie auch in CSV:
mydf.to_csv('myfile.csv', sep=':')

Das Ergebnis ist:

myfile.csv ist 5,6 MB großmyfile.h5 ist 11 MB groß

Der Unterschied wird größer, wenn die Datensätze größer werden.

Ich habe es mit anderen Komprimierungsmethoden und -stufen versucht. Ist das ein Bug? (Ich verwende Pandas 0.11 und die neueste stabile Version von HDF5 und Python).

Antworten auf die Frage(1)

Ihre Antwort auf die Frage