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

将Pandas DataFrame转为PyTorch Dataset时触发AttributeError错误的求助

问题原因及解决方法

错误原因

你代码里导入的Dataset是Hugging Face datasets库中的类,这个类是面向NLP场景的数据集封装,有自己的内部属性规范(比如必须包含_info属性)。但你是按照PyTorch原生Dataset的逻辑去实现的,两者接口不匹配,因此触发了AttributeError。

修正方法

1. 替换正确的Dataset导入

把导入语句换成PyTorch原生的Dataset类即可,你的自定义类逻辑不需要改动:

from torch.utils.data import Dataset

2. 更规范的实现方式(可选)

建议把整个DataFrame存在类实例中,而非单独存储列,后续扩展数据列时会更灵活:

import pandas as pd
from torch.utils.data import Dataset

class CustomDataset(Dataset):
    def __init__(self, src_file):
        self.df = pd.read_csv(src_file)

    def __len__(self):
        return len(self.df)

    def __getitem__(self, idx):
        row = self.df.iloc[idx]
        return row['A'], row['B']

3. 快速转换的替代方案

如果只是简单转换Pandas DataFrame为PyTorch Dataset,也可以用TensorDataset配合张量转换快速实现:

import torch
from torch.utils.data import TensorDataset

# 假设df是你的Pandas DataFrame
tensor_a = torch.tensor(df['A'].values, dtype=torch.float32)
tensor_b = torch.tensor(df['B'].values, dtype=torch.float32)
dataset = TensorDataset(tensor_a, tensor_b)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 12:12:41