如何修复:valueerror:所有数组的长度必须相同
使用 pandas 时可能遇到的错误是:
ValueError : All arrays must be of the same length
当您尝试创建 pandas DataFrame 并且 DataFrame 中的所有列的长度并非相同时,会发生此错误。
以下示例展示了如何在实践中纠正此错误。
如何重现错误
假设我们尝试创建以下 pandas DataFrame:
import pandas as pd #define arrays to use as columns in DataFrame team = ['A', 'A', 'A', 'A', 'B', 'B', 'B'] position = ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'] points = [5, 7, 7, 9, 12, 9, 9, 4] #attempt to create DataFrame from arrays df = pd. DataFrame ({' team ': team, ' position ': position, ' dots ': dots}) ValueError : All arrays must be of the same length
我们收到一个错误,告诉我们每个数组的长度不同。
我们可以通过打印每个数组的长度来检查这一点:
#print length of each array
print ( len (team), len (position), len (points))
7 8 8
我们看到“team”表只有7 个元素,而“position”表和“points”表各有8 个元素。
如何修复错误
解决此错误的最简单方法是简单地确保我们使用的每个数组的长度相同:
import pandas as pd #define arrays to use as columns in DataFrame team = ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'] position = ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'] points = [5, 7, 7, 9, 12, 9, 9, 4] #create DataFrame from arrays df = pd. DataFrame ({' team ': team, ' position ': position, ' dots ': dots}) #view DataFrame df team position points 0 A G 5 1 A G 7 2 A F 7 3 A F 9 4 B G 12 5 B G 9 6 B F 9 7 B F 4
请注意,这次每个数组的长度相同。
因此,当我们使用数组创建 pandas DataFrame 时,我们不会收到错误,因为每列的长度相同。
其他资源
以下教程解释了如何修复 Python 中的其他常见错误:
如何修复 Pandas 中的 KeyError
如何修复:ValueError:无法将 float NaN 转换为 int
如何修复:ValueError:操作数无法与形状一起广播