Pandas có nice interface tạo điều kiện cho việc lưu trữ những thứ như Dataframes và Series trong một HDF5:Lưu trữ Pandas đối tượng cùng với các đối tượng Python thường xuyên trong HDF5
random_matrix = np.random.random_integers(0,10, m_size)
my_dataframe = pd.DataFrame(random_matrix)
store = pd.HDFStore('some_file.h5',complevel=9, complib='bzip2')
store['my_dataframe'] = my_dataframe
store.close()
Nhưng nếu tôi cố gắng tiết kiệm một số đối tượng Python thường xuyên khác trong cùng tập tin, nó than phiền:
my_dictionary = dict()
my_dictionary['a'] = 2 # <--- ERROR
my_dictionary['b'] = [2,3,4]
store['my_dictionary'] = my_dictionary
store.close()
với
TypeError: cannot properly create the storer for: [_TYPE_MAP] [group->/par
ameters (Group) u'',value-><type 'dict'>,table->None,append->False,kwargs-
>{}]
Làm thế nào tôi có thể Stor e thường xuyên cấu trúc dữ liệu Python trong cùng một HDF5 nơi tôi lưu trữ các đối tượng Pandas khác?
Cảm ơn! Nhân tiện, tôi nhận được 'PerformanceWarnings' với một số lệnh' store'. Tôi đã thử vô hiệu hóa chúng bằng: 'cảnh báo nhập khẩu; warnings.simplefilter (action = "ignore", category = PerformanceWarning) 'nhưng tôi nhận được' Name 'PerformanceWarning' không được định nghĩa'. Bạn có biết cách tắt tiếng họ không? –
Thực ra bạn nên chú ý đến những điều này. Những điều này về cơ bản đang nói rằng bạn đang lưu trữ một kiểu dữ liệu mà PyTables sẽ là '' pickle''! Hãy thử lưu trữ dưới dạng bảng (hoặc sử dụng '' append'' hoặc '' store.put ('df', df, table = True) '' lưu trữ trong định dạng '' Table ''; xử lý tốt hơn những thứ như '' nan'' dtypes nào đó (định dạng '' Storer'' sẽ cho bạn PerfWarning. Xem http://pandas.pydata.org/pandas-docs/dev/io.html#table-format – Jeff
Nếu bạn thực sự muốn tắt chúng, hãy thử: '' từ pandas.io.pytables import PerformanceWarning'' nhưng xem bình luận của tôi ở trên Đây là lý do tại sao – Jeff