إنشاء عمود شرطي: If-Elif-Else في Pandas
تطلب المشكلة المحددة إضافة عمود جديد إلى DataFrame بناء على سلسلة من المعايير الشرطية. يكمن التحدي في تنفيذ هذه الشروط مع الحفاظ على كفاءة التعليمات البرمجية وسهولة القراءة.
الحل باستخدام تطبيق الوظيفة
يتضمن أحد الأساليب إنشاء وظيفة تقوم بتعيين كل صف إلى النتيجة المرجوة بناءً على الشروط:
def f(row):
if row['A'] == row['B']:
return 0
elif row['A'] > row['B']:
return 1
else:
return -1
df['C'] = df.apply(f, axis=1)
هذه الطريقة قابلة للقراءة وسهلة التنفيذ، ولكنها ليست موجهة وقد تؤدي إلى مشكلات في الأداء مع مجموعات البيانات الكبيرة.
الحل الموجه
من أجل الكفاءة، يوصى باتباع نهج متجه باستخدام وظيفة np.where الخاصة بـ NumPy:
df['C'] = np.where(
df['A'] == df['B'], 0, np.where(
df['A'] > df['B'], 1, -1))
تؤدي هذه العملية عنصر التحديد الشرطي على DataFrame، مما يؤدي إلى ظهور عمود جديد بالقيم المطلوبة.
يوفر هذا النهج المتجه فوائد أداء كبيرة مقارنة بالطريقة القائمة على الوظيفة. كما يسمح أيضًا بتنفيذ أكثر إيجازًا وقابلية للقراءة للمعايير الشرطية.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3