【问题标题】:AttributeError: 'DataFrame' object has no attribute 'raw_ratings'AttributeError:“DataFrame”对象没有属性“raw_ratings”
【发布时间】:2023-08-07 09:07:01
【问题描述】:

使用以下命令时出现错误

trainset, testset = train_test_split(t2data, test_size=.15,train_size=0.85)

数据集包含用户评分、用户 ID 和产品 ID。

错误信息:

AttributeError: 'DataFrame' object has no attribute 'raw_ratings'

我的数据框没有任何名为 raw_ratings 的属性。

这就是我阅读 CSV 的方式:

rdata = pd.read_csv('ratings_Electronics.csv', header=0, names ['userid','productid','rating','timestamp'],skipinitialspace=True)

所以我无法理解这个错误是如何发生的。任何帮助,将不胜感激。谢谢

详细错误:


AttributeError Traceback(最近一次调用最后一次) 在 () ----> 1 个训练集,测试集 = train_test_split(t2data, test_size=.15,train_size=0.85)

2 帧 /usr/local/lib/python3.6/dist-packages/pandas/core/generic.py in getattr(自我,名称) 第5134章 5135返回自我[名称] -> 5136 返回对象。getattribute(self, name) 5137 5138 def setattr(自我,名称:str,值)->无:

AttributeError: 'DataFrame' 对象没有属性 'raw_ratings'

【问题讨论】:

  • 您的数据集中可能有一些不合适的数据,请您洞察每一列
  • 您好,您的问题找到解决方案了吗?

标签: python pandas recommendation-engine


【解决方案1】:

您可能使用了错误的数据类型。很有可能您使用的是 panada 数据框,而意外数据集是预期的。

我发现这个例子很有帮助https://github.com/NicolasHug/Surprise/issues/20 来自 NicholasHug。
解决方案对我有用。

【讨论】:

    【解决方案2】:

    您正在读取rdata 变量中的CSV 并拆分t2data

    【讨论】:

    • 感谢您的回复;我在两者之间做了一些转换(删除时间戳;只考虑那些评分超过 50 的用户 ID),因此新数据集是 t2data。
    • 谢谢 :) 请投票,如果你愿意,请接受我的解决方案!欢迎来到开源社区
    • 对不起;问题没有解决。我回复了您关于数据集名称差异的评论。
    • 您找到解决问题的方法了吗?我有同样的问题