2013-08-16 28 views
6

Đối với một vài khía cạnh của một dự án, sử dụng bộ nhớ "h5" sẽ là lý tưởng. Tuy nhiên, các tập tin đang trở nên lớn và thẳng thắn, chúng tôi đang hết dung lượng.Sử dụng nén với Pandas và HD5/HDFStore

Tuyên bố này ...

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

không tạo ra bất kỳ sự khác biệt về kích thước tập tin hơn ...

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

Đang sử dụng nén thậm chí có thể khi đi qua Pandas?

... nếu không thể, tôi không ngại sử dụng h5py, tuy nhiên, tôi không chắc chắn nên đặt gì cho "datatype" vì DataFrame chứa tất cả các loại (chuỗi, float, int vv)

Bất kỳ trợ giúp/thông tin chi tiết nào sẽ được đánh giá cao!

Trả lời

8

thấy docs liên quan đến nén sử dụng HDFStore

gzip không phải là một lựa chọn nén hợp lệ (và được bỏ qua, đó là một lỗi). thử bất kỳ zlib, bzip2, lzo, blosc (bzip2/LZO có thể cần các thư viện thêm cài đặt)

xem cho PyTables docs trên nén khác nhau

Heres một question bán liên quan.

+0

Khi tôi cố gắng triển khai mã qua tài liệu (bảng = True/False ... tất cả các kết hợp), tôi nhận được lỗi sau: 'ValueError: Nén không được hỗ trợ trên bảng không' DataFrame của tôi (có chứa một số chuỗi), không tương thích với loại lưu trữ này? – TravisVOX

+0

thử mở cửa hàng bằng '' complib = 'zlib', complevel = 9'', lần đầu tiên bạn viết nó; Các bảng hỗ trợ cho mỗi lần nén bảng, nhưng '' bộ nhớ'' (không phải bảng) thì không (vì việc thực hiện chúng, chúng không sử dụng định dạng nén dưới nắp) – Jeff

+0

như một sang một bên, nếu bạn có nhiều dữ liệu , '' table'' định dạng tốt hơn cho bạn, vì bạn có thể '' append'', ví dụ làm chunked đọc và viết (và truy vấn); '' storer'' không thể – Jeff