كيفية الإصلاح: خطأ القيمة: يجب أن تكون جميع المصفوفات بنفس الطول


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

 ValueError : All arrays must be of the same length

يحدث هذا الخطأ عند محاولة إنشاء DataFrame الباندا وليس كل الأعمدة في DataFrame بنفس الطول.

يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.

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

لنفترض أننا نحاول إنشاء DataFrame الباندا التالية:

 import pandas as pd

#define arrays to use as columns in DataFrame
team = ['A', 'A', 'A', 'A', 'B', 'B', 'B']
position = ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F']
points = [5, 7, 7, 9, 12, 9, 9, 4]

#attempt to create DataFrame from arrays
df = pd. DataFrame ({' team ': team,
                   ' position ': position,
                   ' dots ': dots})

ValueError : All arrays must be of the same length

نتلقى خطأ يخبرنا أن كل مصفوفة ليست بنفس الطول.

يمكننا التحقق من ذلك عن طريق طباعة طول كل مصفوفة:

 #print length of each array
print ( len (team), len (position), len (points))

7 8 8

نرى أن جدول “الفريق” يحتوي على 7 عناصر فقط بينما يحتوي كل من جدولي “الموضع” و”النقاط” على 8 عناصر.

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

أسهل طريقة لحل هذا الخطأ هي التأكد ببساطة من أن كل مصفوفة نستخدمها لها نفس الطول:

 import pandas as pd

#define arrays to use as columns in DataFrame
team = ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B']
position = ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F']
points = [5, 7, 7, 9, 12, 9, 9, 4]

#create DataFrame from arrays
df = pd. DataFrame ({' team ': team,
                   ' position ': position,
                   ' dots ': dots})

#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 12
5 B G 9
6 B F 9
7 B F 4

لاحظ أن كل مصفوفة هذه المرة لها نفس الطول.

لذلك عندما نستخدم المصفوفات لإنشاء DataFrame الباندا، لا نتلقى خطأ لأن كل عمود له نفس الطول.

مصادر إضافية

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

كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال

Add a Comment

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