在python处理数据的时候出现了ValueError: too many values to unpack (expected 2)的报错,报错代码如下:
for i, col in df.columns[1:-1:2]: # 选择 rounds_* 列
df.columns[1:-1:2]
返回的是一个列表,而不是一个可迭代的(包含索引和值的)元组,因此不能直接用 i, col
来解包(对应unpack)。
解决方法也很简单,我们根据编码需求,改成下面其中一种写法即可:
法一:使用enumerate枚举类型
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。其格式为:
enumerate(sequence, [start=0])
其中:
- sequence -- 一个序列、迭代器或其他支持迭代对象。
- start -- 下标起始位置的值。
即:
for i, col in enumerate(df.columns[1:-1:2]):
法二:只提供一个变量而非元组
for col in df.columns[1:-1:2]: