كيفية الإصلاح في pandas: keyerror: "['label'] غير موجود في المحور”
الخطأ الذي قد تواجهه عند استخدام الباندا هو:
KeyError : "['Label'] not found in axis"
يحدث هذا الخطأ عادةً عند محاولة إزالة عمود من pandas DataFrames ونسيان تحديد axis=1 .
افتراضيًا، يتم تعيين وسيطة المحور على 0 ، والتي تشير إلى الخطوط. تحتاج إلى تحديد المحور = 1 لإخبار الباندا بالنظر إلى الأعمدة.
يوضح المثال التالي كيفية تصحيح هذا الخطأ عمليًا.
كيفية إعادة إنتاج الخطأ
لنفترض أن لدينا DataFrame الباندا التالية:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' points ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print (df) team assists points 0 to 5 11 1 to 7 8 2 to 7 10 3 to 9 6 4 B 12 6 5 B 9 5 6 B 9 9 7 B 4 12
لنفترض الآن أننا نحاول إزالة عمود “النقاط” من DataFrame:
#attempt to drop "points" column
df_new = df. drop (' points ')
KeyError : "['points'] not found in axis"
بشكل افتراضي، تستخدم الدالة drop() المحور=0 ، والذي يشير إلى صفوف DataFrame.
نظرًا لعدم وجود اسم صف يسمى “النقاط”، فإننا نتلقى خطأً.
كيفية إصلاح الخطأ
لإخبار الباندا بالنظر إلى الأعمدة بدلاً من ذلك، نحتاج إلى تحديد المحور = 1 كما يلي:
#drop "points" column
df_new = df. drop (' points ', axis= 1 )
#view updated DataFrame
print (df)
team assists
0 to 5
1 to 7
2 to 7
3 to 9
4 B 12
5 B 9
6 B 9
7 B 4
لاحظ أنه تمت إزالة عمود “النقاط” من DataFrame ولا نتلقى أي أخطاء.
وذلك لأننا استخدمنا axis=1 ، لذلك عرف الباندا أن ينظر إلى أسماء الأعمدة بحثًا عن “النقاط” عند تحديد القيم التي سيتم إزالتها من DataFrame.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية إصلاح الأخطاء الشائعة الأخرى في بايثون:
كيفية إصلاح KeyError في الباندا
كيفية الإصلاح: خطأ القيمة: غير قادر على تحويل float NaN إلى int
كيفية الإصلاح: خطأ في القيمة: لا يمكن بث المعاملات بالأشكال