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

السؤال

نشر

السلام عليكم

انا هنا عاوز يبدل كل الصفر بقيمه NaN ماعد عمود Pregnancies وكمان عمود الDiabetesPedigreeFunction  بس بردو بيغير الاصفر ال قيمه NaN وانا مش عاوز كده ؟

يعني مش ده المنطقي والطبيعه والا اي ؟

for col in diabetes.columns:
    if col != 'Pregnancies' or col != 'DiabetesPedigreeFunction':
        diabetes[col] = diabetes[col].replace(0,np.nan)

ودي البيانات 

 

diabetes_clean.csv

Recommended Posts

  • 0
نشر

الكود الحالي فيه مشكلة بسيطة في الشرط الذي يستخدم لتحديد الأعمدة التي لن يتم استبدال القيم فيها، حيث استخدمت الشرط:

if col != 'Pregnancies' or col != 'DiabetesPedigreeFunction'

ولكن هذا الشرط سيظل صحيحا دائما، لأن أي عمود إما أنه ليس 'Pregnancies' أو ليس 'DiabetesPedigreeFunction'، لذا يجب عليك استخدام الشرط and حتى يستثني فقط هذين العمودين معا، جرب تعديل الكود إلى الآتي:

for col in diabetes.columns:
    if col != 'Pregnancies' and col != 'DiabetesPedigreeFunction':
        diabetes[col] = diabetes[col].replace(0, np.nan)

هكذا سيتم استبدال القيم 0 بقيم NaN في جميع الأعمدة، ما عدا الأعمدة 'Pregnancies' و 'DiabetesPedigreeFunction'.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته .

لا هنا المنطق خاطئ . يجب عليك الإنتباه أنك إذا قمت بإستخدام not فإنك تقوم بتبديل الشرط .

فمثلا نفرض أنك تريد التحقق من رقم هل هو 1 أو 2 نقوم بتنفيذ أمر معين فهنا الشرط سيكون كالتالي :

num = 1
if num == 1 or num == 2:
    print("ok")

ولكن ماذا لو أردنا عكس الشرط أي إذا كان الرقم 1 أو 2 لا نقوم بتنفيذ الأمر هنا سنستخدم not (!) وبهذا يجب تبديل الشرط or ليكون and :

num = 5
if num != 1 and num != 2:
    print("ok")

وهكذا إذا تم إستخدام not وكان يوجد شرط and يتم تحوليه إلى or والعكس لو كان يوجد or يتم تحويله إلى and.

وهكذا نفس المنطق لديك نحن نريد عدم تنفيذ الكود إذا كان العمود Pregnancies أو DiabetesPedigreeFunction إذا هنا الشرط (أو or ) وبما أننا نريد عكسه أى سنستخدم (not !) إذا سنقوم بتحويل or إلى and هكذا :

for col in diabetes.columns:
    if col != 'Pregnancies' or col != 'DiabetesPedigreeFunction':
        diabetes[col] = diabetes[col].replace(0,np.nan)

ويمكنك التفكير فيها بطريقة منطقية أكثر إذا كان العمود مثلا Pregnancies فإن الشرط col != 'Pregnancies' لن يتحقق ولكن col != 'DiabetesPedigreeFunction' سيتحقق وبهذا سيتم تنفيذ الكود بسبب or.

 

  • 0
نشر
بتاريخ 2 دقائق مضت قال محمد عاطف17:

ويمكنك التفكير فيها بطريقة منطقية أكثر إذا كان العمود مثلا Pregnancies فإن الشرط col != 'Pregnancies' لن يتحقق ولكن col != 'DiabetesPedigreeFunction' سيتحقق وبهذا سيتم تنفيذ الكود بسبب or.

 

ايوه صح فعلان المفروض and مش or عشان انا عاوز العمود ده وكمان العمود ده 

فا الف شكراا لحضرتكم جدا جزاكم الله كل خير 

الازم الشرطين يتحقيق مش شرط واحد

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...