如何修复:第一个参数必须是 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”不可调用
如何修复:类型错误:预期字符串或字节对象

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注