У меня есть класс, который наследует от DataFrame, но переопределяет некоторое поведение по причинам бизнес-логики.Все хорошо, но мне нужна возможность импортировать и экспортировать их.msgpack кажется хорошим выбором, но на самом деле не работает.(Использование стандартной библиотеки msgpack даже не работает на обычных Dataframes, поэтому рекомендуется использовать функции msgpack для dataframe.)
class DataFrameWrap(pandas.DataFrame):
pass
df = DataFrameWrap()
packed_df = df.to_msgpack()
pandas.read_msgpack(packed_df)
Это приводит к ошибке
File "C:\Users\REDACTED\PROJECT_NAME\lib\site-packages\pandas\io\packers.py", line 627, in decode
return globals()[obj[u'klass']](BlockManager(blocks, axes))
KeyError: u'DataFrameWrap'
когда он достигает строки read_msgpack ().Это работает, если я заменю DataFrameWrap () обычным DataFrame ().
Есть ли способ сообщить пандам, где найти класс DataFrameWrap?После прочтения кода похоже, что если бы я мог вставить {"DataFrameWrap": DataFrameWrap} в глобальные переменные, как видно из этого файла, это сработало бы, но я не уверен, как на самом деле это сделать.Там также может быть правильный способ сделать это, но это не очевидно.