[英]Serialize Pandas DataFrame to in-memory buffer representation
将 DataFrame 序列化为内存表示的最快方法是什么? 根据一些研究, Apache Feather格式似乎是大多数指标中最快的可用格式。
我的目标是获取 DataFrame 的序列化字节 - Feather 的唯一问题是我想避免写入磁盘和从磁盘加载的开销,而 Feather API 似乎只允许文件 I/O。 有没有我应该研究的不同格式,或者 Python 中是否有一种方法可以“伪造”文件,迫使 Feather 改为写入内存缓冲区?
pyarrow
提供BufferOutputStream
用于写入 memory 而不是文件。 与文档字符串相比, read_feather
和write_feather
还支持从 memory 读取/写入写入器接口。
使用以下代码,您可以将 DataFrame 序列化为 memory 而无需进入文件系统,然后直接重新构建它。
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())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.