Oplossing: typeerror: 'dataframe'-object kan niet worden opgevraagd
Een veel voorkomende fout die u kunt tegenkomen bij het gebruik van panda’s is:
TypeError : 'DataFrame' object is not callable
Deze fout treedt meestal op wanneer u probeert een berekening uit te voeren op een variabele in een Panda DataFrame met behulp van ronde haakjes () in plaats van vierkante haakjes [ ] .
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Hoe de fout te reproduceren
Stel dat we de volgende panda’s DataFrame hebben:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print (df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6 5 F 11 9 5 6 G 20 9 9 7:28 4 12
Stel nu dat we proberen de gemiddelde waarde in de kolom “punten” te berekenen:
#attempt to calculate mean value in points column
df(' points '). mean ()
TypeError : 'DataFrame' object is not callable
Omdat we ronde () haakjes hebben gebruikt, denkt Panda dat we het DataFrame als een functie proberen aan te roepen.
Omdat het DataFrame geen functie is, ontvangen we een foutmelding.
Hoe u de fout kunt oplossen
De manier om deze fout op te lossen is door simpelweg vierkante haakjes [ ] te gebruiken bij toegang tot de puntenkolom in plaats van ronde haakjes () :
#calculate mean value in points column
df[' points ']. mean ()
18.25
We kunnen het gemiddelde van de puntenkolom (18,25) berekenen zonder een foutmelding te krijgen, omdat we vierkante haakjes hebben gebruikt.
Merk ook op dat we ook de volgende puntnotatie kunnen gebruiken om het gemiddelde van de puntkolom te berekenen:
#calculate mean value in points column
df. points . mean ()
18.25
Houd er rekening mee dat we ook deze keer geen fouten ontvangen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:
Oplossing in Python: Object ’numpy.ndarray‘ kan niet worden opgevraagd
Oplossing: TypeError: Object ’numpy.float64′ kan niet worden opgevraagd
Oplossing: Typefout: verwacht tekenreeks- of bytesobject