كيفية الإصلاح: typeerror: كائن "dataframe" غير قابل للاستدعاء


الخطأ الشائع الذي قد تواجهه عند استخدام الباندا هو:

 TypeError : 'DataFrame' object is not callable

يحدث هذا الخطأ عادةً عند محاولة إجراء عملية حسابية على متغير في pandas DataFrame باستخدام الأقواس المستديرة () بدلاً من الأقواس المربعة [ ] .

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

كيفية إعادة إنتاج الخطأ

لنفترض أن لدينا DataFrame الباندا التالية:

 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

لنفترض الآن أننا نحاول حساب القيمة المتوسطة في عمود “النقاط”:

 #attempt to calculate mean value in points column
df(' points '). mean ()

TypeError : 'DataFrame' object is not callable

نظرًا لأننا استخدمنا الأقواس الدائرية () ، تعتقد الباندا أننا نحاول استدعاء DataFrame كدالة.

نظرًا لأن DataFrame ليس دالة، فإننا نتلقى خطأ.

كيفية اصلاح الخطأ

طريقة حل هذا الخطأ هي ببساطة استخدام الأقواس المربعة [ ] عند الوصول إلى عمود النقاط بدلاً من الأقواس المستديرة () :

 #calculate mean value in points column
df[' points ']. mean ()

18.25

تمكنا من حساب متوسط عمود النقاط (18.25) دون ظهور أي خطأ لأننا استخدمنا الأقواس المربعة.

لاحظ أيضًا أنه يمكننا أيضًا استخدام تدوين النقطة التالي لحساب متوسط عمود النقطة:

 #calculate mean value in points column
df. points . mean ()

18.25

لاحظ أننا لا نتلقى أي أخطاء هذه المرة أيضًا.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:

كيفية الإصلاح في Python: الكائن “numpy.ndarray” غير قابل للاستدعاء
كيفية الإصلاح: خطأ في الكتابة: الكائن “numpy.float64” غير قابل للاستدعاء
كيفية الإصلاح: خطأ في الكتابة: كائن السلسلة أو البايتات المتوقعة

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *