【发布时间】:2020-12-15 14:58:57
【问题描述】:
我在 Kaggle 上找到了一个练习,它将我的目的定义为:
我们希望在我们的网站上发布这些葡萄酒评论,但评分 从 80 到 100 分的系统太难理解了——我们会 喜欢把它们翻译成简单的星级。 95分或 较高的算作 3 星,得分至少 85 但低于 95 为 2 星星。任何其他分数都是 1 星。
此外,加拿大葡萄酒商协会在 网站,所以任何来自加拿大的葡萄酒都应该自动获得 3 星, 不管分数。
创建一个系列
star_ratings,其星数对应 到数据集中的每条评论。
我写这段代码是为了达到我的目的:
def stars(reviews):
for i,pons in enumerate(reviews.points):
if pons < 85:
reviews.points[i] = "1 star"
elif pons <95:
reviews.points[i] = "2 stars"
elif (pons >= 95):
reviews.points[i] = "3 stars"
for i,cons in reviews.country:
if cons == "Canada":
reviews.points[i] = "3 stars"
star_ratings = reviews.apply(stars, axis = "columns")
This answer 对我不起作用,因为我不断收到
TypeError: 'int' 对象不可迭代
为什么我的 for 循环总是给我这个错误?
【问题讨论】:
-
看起来
reviews.points是一个整数。您不能迭代单个整数。