2013-08-16 7 views
6

Für einige Aspekte eines Projekts wäre die Verwendung von "h5" -Speicher ideal. Die Dateien werden jedoch massiv und ehrlich gesagt, uns geht der Platz aus.Komprimierung mit Pandas und HD5/HDFStore verwenden

Diese Aussage ...

store.put(storekey, data, table=False, compression='gzip') 

produzieren keinen Unterschied in Bezug auf die Dateigröße als ...

store.put(storekey, data, table=False) 

Komprimierung sogar möglich ist, zu verwenden, wenn durch Pandas gehen?

... wenn es nicht möglich ist, stört es mich nicht mit h5py, aber ich bin unsicher, was für einen "Datentyp" zu setzen, da der Datenrahmen alle Arten von Typen enthält (Strings, float, int etc.)

Jede Hilfe/Einsicht wäre willkommen!

Antwort

8

siehe docs in Bezug auf Kompression HDFStore

gzip ist keine gültige Option compression (und wird ignoriert, dass ein Fehler ist) verwenden. versuchen, die beliebigen zlib, bzip2, lzo, blosc (bzip2/lzo könnten zusätzliche Bibliotheken installiert sein)

für PyTables docs auf den verschiedenen Kompressions

Heres ein question halb im Zusammenhang sehen.

+0

Wenn ich versuche, den Code über die Docs (Tabelle = True/False ... alle Kombinationen) zu implementieren, erhalte ich den folgenden Fehler: 'ValueError: Compression nicht auf Nicht-Tabelle unterstützt 'ist meine DataFrame (die enthält eine Zeichenfolge), nicht kompatibel mit dieser Art von Speicher? – TravisVOX

+0

versuchen Sie den Laden mit dem '' complib = 'zlib', complevel = 9'', das erste Mal, wenn Sie es schreiben; Tabellen unterstützen pro Tabelle Komprimierung, aber '' storers'' (eine Nicht-Tabelle) nicht (wegen ihrer Implementierung, sie verwenden kein Komprimierungsformat unter der Haube) – Jeff

+0

als eine Seite, wenn Sie viele Daten haben , '' table'' Format prob besser für Sie, wie Sie "append", z tun Chunked liest und schreibt (und Abfragen); '' storer'' kann nicht – Jeff