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

السؤال

نشر

السلام عليكم

ده الكود الاول 

x = data_train["hla_match_b_high" , "hla_match_a_low"]

وده التاني 

x = data_train[["hla_match_b_high", "hla_match_a_low"]]

هو ليه التاني شغل والاوال الا 

مع العلم ان الكود ده شغل عادي

print(data_train['hla_match_b_high'].value_counts())

 

Recommended Posts

  • 0
نشر

وعليكم السلام,

الكود الثاني يحتوي على قوسين ][ بينما الأول يحتوي على قوس واحد فعندما نحاول الوصول إلى المعلومات قد يكون وصولنا إلى المعلومات  بطريقة مختلفة فبالكود الأول أنت حددت عمود واحد بينما الكود الثاني عدة أعمدة.

  • 0
نشر

بالنسبة للكود الأول فأنت تمرر قيمة مزدوجة بين الأقواس، و يعتبر tuple لأنك فصلت بين العنصرين بفاصلة، و مكتبة pandas لا تدعم تحديد الأعمدة باستخدام tuple عند الوصول إلى أعمدة متعددة، وبالتالي ينتج عنه خطأ.

أما في الكود الثاني، فأنت تمرر قائمة باستخدام الأقواس المربعة [ ]، و مكتبة pandas تدعم تحديد الأعمدة باستخدام قائمة تحتوي على أسماء الأعمدة، وهذا هو الشكل الصحيح للوصول إلى أعمدة متعددة في DataFrame.

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

  • 0
نشر

الفرق بين الكودين يكمن في طريقة استدعاء الأعمدة داخل الـ DataFrame في مكتبة Pandas ففي الكود الأول:

x = data_train["hla_match_b_high", "hla_match_a_low"]

يتم تمرير عمودين مفصولين بفاصلة مباشرة داخل الأقواس المربعة، وهذا يؤدي إلى حدوث خطأ لأن Pandas يتوقع مفتاحا واحدا فقط عند استخدام الأقواس المفردة [] والصيغة الصحيحة لاستدعاء أعمدة متعددة تتطلب استخدام قائمة تحتوي على أسماء الأعمدة لذلك نرى أنه في الكود الثاني:

x = data_train[["hla_match_b_high", "hla_match_a_low"]]

يتم تمرير قائمة تحتوي على أسماء الأعمدة، وهي الصيغة الصحيحة للوصول إلى أعمدة متعددة في نفس الوقت وهذا الاختلاف هو السبب وراء نجاح الكود الثاني وفشل الأول فبالنسبة للكود الذي يستخدم دالة print(data_train['hla_match_b_high'].value_counts())، فإنه يعمل بشكل صحيح لأنه يستدعي عمودا واحدا فقط باستخدام صيغة الأقواس المفردة []، وهي الطريقة الصحيحة للوصول إلى عمود واحد فقط في ال DataFrame.

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...