"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إصلاح الأخطاء عند تطبيق الوظائف على أعمدة متعددة باستخدام وظيفة \'تطبيق\' Pandas؟

كيفية إصلاح الأخطاء عند تطبيق الوظائف على أعمدة متعددة باستخدام وظيفة \'تطبيق\' Pandas؟

تم النشر بتاريخ 2024-11-15
تصفح:314

How to Fix Errors When Applying Functions to Multiple Columns with the Pandas \'apply\' Function?

استكشاف أخطاء وظيفة "تطبيق" 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

من خلال فحص الوظيفة بعناية وإدراج أسماء الأعمدة في سلاسل، يمكنك حل المشكلات بشكل فعال واستخدام وظيفة "تطبيق" مع أعمدة متعددة.

بيان الافراج أعيد طبع هذه المقالة على: 1729208058 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3