Pandas имеет метод DataFrame.to_msgpack() для сериализации кадра данных в формате MessagePack.Как сериализовать формат Pandas в MessagePack как буфер python/memoryview?
Для этого требуется путь к файлу или «буферный» объект. Если этого не предусмотрено, то он возвращает данные в строчном представлении.
Мой вопрос заключается в том, как правильно сохранить эти данные в виде объекта, подобного буферам, без сохранения его сначала как строки?
#1
string_data = df.to_msgpack() # returns data as string
#2
memory_buffer = memory view(df.to_msgpack()) # creates a memory view from string
#3
df.to_msgpack('filename.msg') # return data as binary file
#4
memory_buffer = memoryview(b'')
df.to_msgpack(memory_buffer, append=True) # would this work?
В сценарии 4, df.to_msgpack() требует буфера-подобного объекта, тогда как memoryview() требует входного параметра. Поэтому нужно было бы создать «пустой» вид памяти, а затем передать это методу to_msgpack(). Затем добавьте данные. Хотя я задаюсь вопросом, приведет ли это к артефактам при распаковке данных.
С сценарием 2, правильно ли считать, что вид памяти в строке будет эквивалентен байтовому массиву?