كيفية الإصلاح: خطأ في القيمة: يحتوي الفهرس على إدخالات مكررة، ولا يمكن إعادة تشكيلها
الخطأ الذي قد تواجهه عند استخدام الباندا هو:
ValueError : Index contains duplicate entries, cannot reshape
يحدث هذا الخطأ عادةً عند محاولة إعادة تشكيل إطار بيانات الباندا باستخدام الدالة المحورية () ، ولكن هناك قيم متعددة في DataFrame الناتج تشترك في نفس قيم الفهرس.
يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا DataFrame الباندا التالية:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' points ': [5, 7, 7, 9, 4, 9, 9, 12]}) #view DataFrame df team position points 0 A G 5 1 A G 7 2 A F 7 3 A F 9 4 B G 4 5 B G 9 6 B F 9 7 B F 12
لنفترض الآن أننا نحاول تدوير DataFrame، باستخدام الفريق كصفوف والموضع كأعمدة:
#attempt to reshape DataFrame
df. pivot (index=' team ', columns=' position ', values=' points ')
ValueError : Index contains duplicate entries, cannot reshape
نتلقى خطأً لأن صفوفًا متعددة في DataFrame تشترك في نفس القيم للفريق والمنصب .
لذلك عندما نحاول إعادة تشكيل DataFrame، لا تعرف الباندا قيمة النقطة التي سيتم عرضها في كل خلية من DataFrame الناتج.
كيفية اصلاح الخطأ
لإصلاح هذا الخطأ، يمكننا استخدام الدالة Pivot_table() مع وسيطة aggfunc محددة لتجميع قيم البيانات بطريقة معينة.
على سبيل المثال، يمكننا استخدام Pivot_table() لإنشاء DataFrame جديد يستخدم الفريق كصفوف، والموضع كأعمدة، ومجموع قيم النقاط في خلايا DataFrame:
df. pivot_table (index=' team ', columns=' position ', values=' points ', aggfunc=' sum ')
position F G
team
At 16 12
B 21 13
لاحظ أننا لا نتلقى خطأ هذه المرة.
تُظهر القيم الموجودة في DataFrame مجموع النقاط لكل فريق ومجموعة مراكز .
لاحظ أنه يمكننا أيضًا استخدام قيمة مختلفة لـ aggfunc ، مثل Average:
df. pivot_table (index=' team ', columns=' position ', values=' points ', aggfunc=' mean ')
position F G
team
At 8.0 6.0
B 10.5 6.5
باستخدام الوسيطة aggfunc في الدالة Pivot_table() ، يمكننا تجنب أي أخطاء.
ملاحظة: يمكنك العثور على الوثائق الكاملة لوظيفة Pivot_table() هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:
كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال