You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Pandas DataFrame转换为HuggingFace DatasetDict?

问题分析与解决方案

你的代码核心问题在于:用namedtuple自定义的Dataset和DatasetDict并非Hugging Face官方的数据集类型——官方Dataset是具备数据访问、预处理、存储等完整功能的专用对象,而你返回的列表或自定义元组无法实现与官方数据集一致的行为。

以下是符合要求的正确实现:


前置准备

确保已安装Hugging Face的datasets库:

pip install datasets

完整代码实现

import pandas as pd
from datasets import Dataset, DatasetDict

def convert_to_hf_dataset(df):
    # 重命名English列为en
    df = df.rename(columns={'English': 'en'})
    
    # 拆分数据集:严格对应18000/1000/1000的行数分配
    train_df = df.iloc[:18000].copy()
    val_df = df.iloc[18000:19000].copy()
    test_df = df.iloc[19000:20000].copy()

    # 构造符合要求的translation字段(示例中目标语言键为'to',对应原DataFrame的'te'列)
    def format_row(row):
        return {'translation': {'en': row['en'], 'to': row['te']}}
    
    # 将拆分后的DataFrame转换为官方Dataset对象
    train_dataset = Dataset.from_pandas(train_df.apply(format_row, axis=1))
    val_dataset = Dataset.from_pandas(val_df.apply(format_row, axis=1))
    test_dataset = Dataset.from_pandas(test_df.apply(format_row, axis=1))
    
    # 组合成标准DatasetDict
    return DatasetDict({
        'train': train_dataset,
        'validation': val_dataset,
        'test': test_dataset
    })

# 加载原始数据并转换
df = pd.read_csv('eng-to-te.csv')
raw_datasets = convert_to_hf_dataset(df)

验证效果

  1. 查看数据集结构:
print(raw_datasets)

输出与你期望的格式完全一致:

DatasetDict({
    train: Dataset({
        features: ['translation'],
        num_rows: 18000
    })
    validation: Dataset({
        features: ['translation'],
        num_rows: 1000
    })
    test: Dataset({
        features: ['translation'],
        num_rows: 1000
    })
})
  1. 访问训练集第一条数据:
print(raw_datasets["train"][0])

返回格式:

{'translation': {'en': 'Membership of Parliament: see Minutes',
  'to': 'Componenţa Parlamentului: a se vedea procesul-verbal'}}

关键说明

  • 无需手动模拟Dataset结构,直接使用Dataset.from_pandas方法转换,自动继承官方Dataset的所有功能(如预处理流水线、保存到磁盘、加载等)。
  • 若实际目标语言键应为te而非示例中的to,只需将format_row函数里的'to'改为'te'即可。

内容的提问来源于stack exchange,提问作者Nithin Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:41:11