Como consertar: o primeiro argumento deve ser um iterável de objetos pandas, você passou um objeto do tipo “dataframe”;
Um erro comum que você pode encontrar ao usar Python é:
TypeError: first argument must be an iterable of pandas objects, you passed an object
of type "DataFrame"
Este erro geralmente ocorre quando você tenta usar a função concat() para adicionar dois DataFrames do pandas sem colocar os nomes dos DataFrames entre parênteses.
O exemplo a seguir mostra como resolver esse erro na prática.
Como reproduzir o erro
Vamos supor que temos os dois DataFrames panda a seguir:
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
Agora suponha que tentamos usar a função concat() para adicionar os dois DataFrames em um único 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"
Estamos recebendo um erro porque não conseguimos colocar os nomes do DataFrame entre parênteses na função concat() .
Como corrigir o erro
A maneira de resolver esse erro é simplesmente colocar os nomes do DataFrame entre colchetes na função concat() da seguinte forma:
#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
Observe que desta vez conseguimos combinar com êxito os dois DataFrames sem erros.
Recursos adicionais
Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:
Como corrigir em Python: o objeto ‘numpy.ndarray’ não pode ser chamado
Como corrigir: TypeError: o objeto ‘numpy.float64’ não pode ser chamado
Como corrigir: erro de tipo: objeto de string ou bytes esperado