我有一个名为records
的数据集,数据集示例如下所示:
user_id movie_id genre
1 1001 action
2 1002 drama
3 1003 comedy
4 1004 drama
... ... ...
我想用下面的方法迭代records
:
for user, movie, genre in records:
print(user, movie, genre)
它首先打印一些行,然后显示以下错误:
44892 113769 comedy
44892 113769 drama
...
------------------------------------------------
ValueError Traceback (most recent call last) in
----> 1 for user, movie, genre in records:
2 print(user, movie, genre)
ValueError: too many values to unpack (expected 3)
什么是错误的,如何解决它?
5条答案
按热度按时间ldfqzlk81#
变量名称不同:
您在数据集中将它们称为
user_id
、movie_id
和genre
,但随后将它们称为user
和movie
。尝试将其更改为:
pjngdqdw2#
我想把这个作为注解添加,但是我不能添加代码片段。因此添加作为答案
您将通过ValueError在代码中断之前打印记录的值。
一旦您向我们显示了发生故障的记录,我们将更容易找到解决方案
注意:如果您想忽略与预期模式不匹配的记录,您可以
j5fpnvbx3#
请检查您的数据集。可能有一些行的数据是由制表符分隔的,它将该行视为新列。因此,错误正在抛出。
示例:
用户标识电影标识类型
44892 113769恐怖喜剧
在这里,如果你选择了制表符/空格作为分隔符,那么它会将恐怖和喜剧视为不同的列。
或者您可以参考:"Too many values to unpack" Exception
ctehm74n4#
您的数据集是否加载为Pandas Dataframe ?如果是,您可以执行以下操作
如果数据集中没有列名,那么自己添加列名可能是一个有效的步骤。
mw3dktmi5#
您可以使用此选项放弃返回的任何额外数据