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).