2013-08-16 26 views
6

Dla kilku aspektów projektu idealne byłoby użycie pamięci "h5". Jednak pliki stają się coraz większe i szczerze mówiąc, brakuje nam miejsca.Używanie kompresji z Pandami i HD5/HDFStore

To stwierdzenie ...

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

nie wywołuje żadnej różnicy pod względem rozmiaru pliku niż ...

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

Czy stosując kompresję nawet możliwe, gdy przeżywa Pandy?

... jeśli nie jest to możliwe, nie mam nic przeciwko używaniu h5py, jednak nie jestem pewien, co umieścić na "typie danych", ponieważ DataFrame zawiera wszystkie rodzaje typów (ciągi, zmiennoprzecinkowe, int itp.)

Każda pomoc/wgląd byłby doceniony!

Odpowiedz

8

zobaczyć docs w odniesieniu do kompresji za HDFStore

gzip nie jest prawidłowym rozwiązaniem kompresji (i jest ignorowane, że to błąd). wypróbować każdy z zlib, bzip2, lzo, blosc (bzip2/LZO może wymagać dodatkowych bibliotek zainstalowanych)

patrz PyTables docs na różnej kompresji

Herezje question semi-podobne.

+0

Kiedy próbuję zaimplementować kod za pomocą dokumentów (tabela = prawda/fałsz ... wszystkie kombinacje), pojawia się następujący błąd: "ValueError: Kompresja nie jest obsługiwana na innych niż tablicach' Czy moja DataFrame (która zawiera jakiś ciąg), nie kompatybilny z tym typem pamięci? – TravisVOX

+0

spróbuj otworzyć sklep za pomocą '' complib = 'zlib', complevel = 9'', po raz pierwszy go zapisz; Obsługa tabel na kompresję tabeli, ale "storers" (nie-tabelowe) nie (z powodu ich implementacji, nie używają formatu kompresji pod maską) – Jeff

+0

na bok, jeśli masz dużo danych , format '' table'' jest dla ciebie lepszy, ponieważ możesz '' append'', np chunked czyta i pisze (i zapytania); '' storer'' nie może – Jeff

Powiązane problemy