如何将pandas DataFrame转为Hugging Face Arrow数据集或读取CSV为该格式?
该操作完全可行,Hugging Face Datasets库默认以Apache Arrow作为底层存储格式,两种转换需求都可以通过官方API快速实现。
前置依赖
首先安装所需的第三方库,执行安装命令:pip install datasets pandas pyarrow
场景1:读取CSV文件为Arrow格式数据集
Hugging Face Datasets库内置了CSV格式解析能力,读取后生成的Dataset对象原生就是Arrow存储结构,操作代码如下:
from datasets import load_dataset # 读取本地CSV文件,生成Arrow底层的Dataset对象 dataset = load_dataset("csv", data_files="你的目标文件路径.csv") # (可选)将数据集导出为本地Arrow格式持久化存储 dataset.save_to_disk("./local_arrow_dataset") # 后续需要使用时直接读取Arrow格式数据集即可 # from datasets import load_from_disk # dataset = load_from_disk("./local_arrow_dataset")
如果处理的是GB级以上的大体积CSV,可在load_dataset时添加streaming=True参数启用流式加载,无需占用大量内存加载全量数据。
场景2:Pandas DataFrame转换为Arrow格式数据集
直接调用Datasets库的内置转换方法即可完成无损转换,操作代码如下:
from datasets import Dataset import pandas as pd # 示例:生成一个测试用的pandas DataFrame df = pd.DataFrame({ "column1": [1,2,3,4], "column2": ["a","b","c","d"] }) # 将DataFrame转为底层为Arrow格式的Hugging Face Dataset对象 dataset = Dataset.from_pandas(df) # (可选)导出为本地Arrow格式文件存储 dataset.save_to_disk("./df_converted_arrow_dataset")
格式验证方法
你可以通过输出dataset.data查看底层结构,返回结果为Arrow Table对象即说明格式转换成功。
内容的提问来源于stack exchange,提问作者Zenith_Raven
相关产品推荐
相关产品推荐

