如何将Polars DataFrame转换为Hugging Face Dataset?
Polars DataFrame与Hugging Face Dataset的转换方案
Polars DataFrame和Hugging Face Dataset均基于Arrow生态,以下是基于现有API的可行转换路径:
Polars DataFrame → Hugging Face Dataset
- 第一步:调用Polars的
to_arrow()方法,将目标DataFrame转换为pyarrow.Table对象。 - 第二步:将
pyarrow.Table序列化为pyarrow.Buffer对象,示例代码如下:import pyarrow as pa # df 为待转换的Polars DataFrame arrow_table = df.to_arrow() buffer_writer = pa.BufferOutputStream() arrow_table.write_to(buffer_writer) arrow_buffer = buffer_writer.getvalue() - 第三步:使用Datasets库的
from_buffer()方法,传入上述arrow_buffer,即可生成Hugging Face Dataset对象。
Hugging Face Dataset → Polars DataFrame
反向转换同样可借助Arrow生态完成:
- 第一步:从Dataset中提取底层的
pyarrow.Table对象(Dataset基于Arrow存储,可直接通过dataset.data.table获取)。 - 第二步:调用Polars的
from_arrow()方法,传入该pyarrow.Table对象,即可得到Polars DataFrame。
内容的提问来源于stack exchange,提问作者Ophir Yoktan
相关产品推荐
相关产品推荐

