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


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

 ValueError : Can only compare identically-labeled DataFrame objects

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

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

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

لنفترض أن لدينا إطاري بيانات الباندا التاليين:

 import pandas as pd

#define DataFrames
df1 = pd. DataFrame ({' points ': [25, 12, 15, 14],
                   ' assists ': [5, 7, 13, 12]})

df2 = pd. DataFrame ({' points ': [25, 12, 15, 14],
                    ' assists ': [5, 7, 13, 12]},
                     index=[3, 2, 1, 0])

#view DataFrames
print (df1)

   assist points
0 25 5
1 12 7
2 15 13
3 14 12

print (df2)

   assist points
3 25 5
2 12 7
1 15 13
0 14 12

لاحظ أن تسميات الأعمدة متطابقة، لكن تسميات الفهرس غير متطابقة.

إذا حاولنا مقارنة إطاري البيانات، فسوف نتلقى خطأ:

 #attempt to compare the DataFrames
df1 = df2

ValueError : Can only compare identically-labeled DataFrame objects

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

هناك بعض الطرق التي يمكننا استخدامها لحل هذا الخطأ.

الطريقة الأولى: مقارنة DataFrames (بما في ذلك تسميات الفهرس)

يمكننا استخدام الصيغة التالية لمقارنة إطاري البيانات لمعرفة ما إذا كانا متطابقين تمامًا (بما في ذلك تسميات الفهرس):

 df1. equals (df2)

False

يخبرنا هذا أن إطاري البيانات لا يتطابقان تمامًا (بما في ذلك تسميات الفهرس).

الطريقة الثانية: مقارنة DataFrames (تجاهل تسميات الفهرس)

يمكننا استخدام الصيغة التالية لمقارنة إطاري البيانات لمعرفة ما إذا كانا متطابقين تمامًا، مع تجاهل تسميات الفهرس تمامًا:

 df1. reset_index (drop= True ). equals ( df2.reset_index (drop= True ))

True

يخبرنا هذا أن إطاري البيانات متطابقان تمامًا (تجاهل تسميات الفهرس).

الطريقة الثالثة: مقارنة صف DataFrames بصف

يمكننا استخدام بناء الجملة التالي لمقارنة صفي DataFrames بصف لمعرفة قيم الصف المطابقة:

 df1. reset_index (drop= True ) == df2. reset_index (drop= True )

      assist points
0 True True
1 True True
2 True True
3 True True

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

مصادر إضافية

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

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

Add a Comment

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