اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

عذرا لدي سؤال لم أستطيع إيجاد إجابة واضحة له أرجو الشرح إخوتي

السؤال

لدي DataFrame بها مجموعة من الأعمدة

يوجد عمودين أقوم بجمعهم ببعض لينتج لنا عمود جديد

أريد أن يكون هناك شرط باسم أحد الأعمدة بحيث لو كان هناك صف في هذا العمود أصغر من 50 أو به قيمة فارغة فلا يقوم بأي عملية في هذا الصف وتكون عمليه الجمع في العمود الجديد = 0

Recommended Posts

  • 0
نشر (معدل)

وعليكم السلام ورحمة الله،

المطلوب هو جمع عمودين في DataFrame ولكن مع شرط معين، بمعنى آخر نريد اختبار شرط معين على كل صف والحصول على قيمة بناء على نتيجة هذا الشرط، لذلك نقوم أولًا بإنشاء الوظيفة التي سنطبقها على كل صف، ثم نستخدم الوظيفة apply ونعطيها الوظيفة التي أنشأناها

import pandas as pd

df = pd.DataFrame({'A': [10, 20, 50, 60, None, 80], 'B': [5, 10, 15, 20, 25, 30]})

# إنشاء وظيفة الاختبار المطلوب تطبيقه على كل صف
# يجب ملاحظة أن هذه الوظيفة سيتم استدعاؤها مع كل صف
def sum_with_condition(row):
    # نختبر إذا كانت قيمة الخانة الأولى تحتوي على بيانات وأيضًا قيمتها أكبر من 50
    if pd.notnull(row['A']) and row['A'] >= 50:
        # إذا تحقق الشرط نقوم بجمع الخانة بالعمود الأول مع الخانة بالعمود الثاني
        return row['A'] + row['B']
    else:        
        return 0
      
# إنشاء عمود جديد وتكون قيمته هو الناتج العائد من الوظيفة
# sum_with_condition
# التي يتم تطبيقها على كل صف 
df['C'] = df.apply(sum_with_condition, axis=1)

print(df)

 

تم التعديل في بواسطة El Sayed El Tohamy

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...