📅  最后修改于: 2023-12-03 15:35:33.684000             🧑  作者: Mango
当我们在使用Python时,有时会遇到像这样的ValueError错误:Length of values must match length of index when setting with an iterable。这个错误表示我们尝试将一个可迭代对象赋值给一个非空DataFrame或Series对象,但是我们的可迭代对象的长度与我们的DataFrame或Series对象的长度不匹配。
这个错误通常发生在以下情况下:
解决这个错误的方法如下:
以下是一个示例,演示了如何解决ValueError错误:Length of values must match length of index when setting with an iterable:
import pandas as pd
# our DataFrame
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]})
# a list to add as a new column
new_column = [7, 8]
# this will raise a ValueError
df["C"] = new_column
# here's the fix: we need to make the list the same length as the DataFrame
new_column = [7, 8, 9]
df["C"] = new_column
print(df)
运行以上代码,输出结果如下:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
在该示例中,我们刚开始尝试将一个长度为2的列表作为一个新的DataFrame列添加到我们的DataFrame中。由于我们的DataFrame有3行,这将导致一个ValueError错误。然后,我们将该列表改为与DataFrame长度相同的长度,此时代码正常运行并添加了列。