将数据帧序列化到内存缓冲区表示

2024-04-25 13:16:39 发布

您现在位置:Python中文网/ 问答频道 /正文

将数据帧序列化为内存中表示的最快方法是什么?根据一些研究,人们似乎普遍认为Apache Feather格式是最快的可用格式

我的目标是获取数据帧的序列化字节-Feather的唯一问题是我希望避免写入磁盘和从磁盘加载的开销,Feather API似乎只允许文件I/O。我是否应该研究一种不同的格式,或者Python中是否有“伪造”文件的方法,强制Feather写入内存缓冲区


Tags: 文件数据方法内存api目标字节序列化
1条回答
网友
1楼 · 发布于 2024-04-25 13:16:39

pyarrow提供BufferOutputStream用于写入内存而不是文件。与docstring相反,read_featherwrite_feather还支持从内存读取/写入写入器接口

使用下面的代码,您可以将数据帧序列化到内存中,而无需访问文件系统,然后直接重新构建它

from pyarrow.feather import read_feather, write_feather
import pandas as pd
import pyarrow as pa

df = pd.DataFrame({"column": [1, 2]})
output_stream = pa.BufferOutputStream()
write_feather(df, output_stream)
df_reconstructed = read_feather(output_stream.getvalue())

相关问题 更多 >

    热门问题