如何修复:第一个参数必须是 pandas 对象的可迭代对象,您传递了“dataframe”类型的对象;
使用 Python 时可能遇到的一个常见错误是:
TypeError: first argument must be an iterable of pandas objects, you passed an object
of type "DataFrame"
当您尝试使用concat()函数将两个 pandas DataFrame 添加在一起而不将 DataFrame 名称放在括号中时,通常会发生此错误。
以下示例展示了如何在实践中解决此错误。
如何重现错误
假设我们有以下两个 panda DataFrame:
import pandas as pd #create first DataFrame df1 = pd. DataFrame ({' x ': [25, 14, 16, 27, 20,15, 14], ' y ': [5, 7, 7, 5, 7, 6, 9], ' z ': [8, 8, 10, 6, 6, 9, 6]}) print (df1) X Y Z 0 25 5 8 1 14 7 8 2 16 7 10 3 27 5 6 4 20 7 6 5 15 6 9 6 14 9 6 #create second DataFrame df2 = pd. DataFrame ({' x ': [58, 60, 65], ' y ': [14, 22, 23], ' z ': [9, 12, 19]}) print (df2) X Y Z 0 58 14 9 1 60 22 12 2 65 23 19
现在假设我们尝试使用concat()函数将两个 DataFrame 添加到单个 DataFrame 中:
#attempt to add two DataFrames together
combined = pd. concat (df1, df2, ignore_index= True )
#view final DataFrame
print (combined)
TypeError: first argument must be an iterable of pandas objects, you passed an object
of type "DataFrame"
我们收到错误,因为我们未能在concat()函数中将 DataFrame 名称括在括号中。
如何修复错误
解决此错误的方法是简单地将 DataFrame 名称括在concat()函数中的方括号中,如下所示:
#append two DataFrames together
combined = pd. concat ([df1, df2], ignore_index= True )
#view final DataFrame
print (combined)
X Y Z
0 25 5 8
1 14 7 8
2 16 7 10
3 27 5 6
4 20 7 6
5 15 6 9
6 14 9 6
7 58 14 9
8 60 22 12
9 65 23 19
请注意,这次我们能够成功地组合两个 DataFrame,没有任何错误。
其他资源
以下教程解释了如何修复 Python 中的其他常见错误:
如何在 Python 中修复:对象“numpy.ndarray”不可调用
如何修复:类型错误:对象“numpy.float64”不可调用
如何修复:类型错误:预期字符串或字节对象