استكشاف أخطاء وظيفة "تطبيق" Pandas وإصلاحها مع أعمدة متعددة
عند محاولة تطبيق وظيفة على أعمدة متعددة في إطار بيانات Pandas باستخدام "تطبيق" '، قد يواجه المستخدمون رسالة خطأ إذا لم تكن أسماء الأعمدة محاطة بسلاسل أو في حالة حدوث خطأ في بناء الجملة في تعريف الوظيفة.
لحل مشكلة الأسماء غير المحددة، تأكد من تحديد أسماء الأعمدة ضمن علامات الاقتباس المفردة أو علامات الاقتباس المزدوجة. على سبيل المثال، بدلاً من استخدام 'row[a]'، استخدم 'row['a']' أو 'row["a"]'.
بالإضافة إلى ذلك، إذا كانت الوظيفة المستخدمة في "apply" تتضمن تعقيدًا العمليات أو الحلقات المتعددة، فمن الضروري التحقق من وجود أي أخطاء في بناء الجملة أو البيانات المفقودة. يمكن أن تؤثر هذه الأخطاء على تنفيذ الوظيفة وتؤدي إلى نتائج غير صحيحة أو رسائل خطأ.
خذ بعين الاعتبار المثال التالي:
df = DataFrame({'a': np.random.randn(6),
'b': ['foo', 'bar'] * 3,
'c': np.random.randn(6)})
def my_test(row):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff (row['a'] - df['a'][ix])
return cum_diff
في هذا المثال، تظهر رسالة الخطأ "IndexError: الفهرس خارج النطاق" نتيجة محاولة الوصول إلى مؤشرات غير موجودة أثناء الحلقة. لتصحيح ذلك، تأكد من أن المؤشرات تقع ضمن حدود إطار البيانات أو استخدم طريقة تكرار مختلفة، مثل:
def my_test(row):
cum_diff = 0
for index, value in df.iterrows():
cum_diff = (row['a'] - value['a'])
return cum_diff
من خلال فحص الوظيفة بعناية وإدراج أسماء الأعمدة في سلاسل، يمكنك حل المشكلات بشكل فعال واستخدام وظيفة "تطبيق" مع أعمدة متعددة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3