2013-08-16 11 views
6

Per alcuni aspetti di un progetto, utilizzare l'archiviazione "h5" sarebbe l'ideale. Tuttavia, i file stanno diventando enormi e francamente stiamo esaurendo lo spazio.Utilizzo della compressione con Pandas e HD5/HDFStore

Questa affermazione ...

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

non produce alcuna differenza in termini di dimensioni del file di ...

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

sta usando la compressione persino possibile quando si passa attraverso Panda?

... se non è possibile, non mi interessa usare h5py, tuttavia, sono incerto su cosa mettere per un "tipo di dati" dato che DataFrame contiene tutti i tipi di tipi ecc.)

Qualsiasi aiuto/approfondimento sarebbe apprezzato!

risposta

8

vedere docs per quanto riguarda la compressione utilizzando HDFStore

gzip non è un opzione di compressione valida (e viene ignorato, questo è un bug). provare uno qualsiasi dei zlib, bzip2, lzo, blosc (bzip2/lzo potrebbe aver bisogno librerie extra installati)

vedere di PyTables docs sui vari compressione

Heres un question semi-related.

+0

Quando tento di implementare il codice tramite docs (table = True/False ... tutte le combinazioni), viene visualizzato il seguente errore: 'ValueError: Compressione non supportata su non-table' È il mio DataFrame (che contiene qualche stringa), non compatibile con questo tipo di archiviazione? – TravisVOX

+0

prova ad aprire il negozio con '' complib = 'zlib', complevel = 9'', la prima volta che lo scrivi; Supporto delle tabelle per compressione della tabella, ma '' storers'' (non-table) non (a causa della loro implementazione, non usano un formato di compressione sotto il cofano) – Jeff

+0

come parte, se si hanno molti dati , il formato '' table'' è meglio per te, dato che puoi '' append'', ad es fare chunked letture e scritture (e query); '' storante'' non può – Jeff

Problemi correlati