كيفية الإصلاح: خطأ في القيمة: يحتوي الفهرس على إدخالات مكررة، ولا يمكن إعادة تشكيلها


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

 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
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال

Add a Comment

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