Ali Ahmed55 نشر الجمعة في 12:30 أرسل تقرير نشر الجمعة في 12:30 السلام عليكم ده الكود الاول 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()) 3 اقتباس
0 عماد شيخ العشرة نشر الجمعة في 13:20 أرسل تقرير نشر الجمعة في 13:20 وعليكم السلام, الكود الثاني يحتوي على قوسين ][ بينما الأول يحتوي على قوس واحد فعندما نحاول الوصول إلى المعلومات قد يكون وصولنا إلى المعلومات بطريقة مختلفة فبالكود الأول أنت حددت عمود واحد بينما الكود الثاني عدة أعمدة. 1 اقتباس
0 Chihab Hedidi نشر الجمعة في 13:53 أرسل تقرير نشر الجمعة في 13:53 بالنسبة للكود الأول فأنت تمرر قيمة مزدوجة بين الأقواس، و يعتبر tuple لأنك فصلت بين العنصرين بفاصلة، و مكتبة pandas لا تدعم تحديد الأعمدة باستخدام tuple عند الوصول إلى أعمدة متعددة، وبالتالي ينتج عنه خطأ. أما في الكود الثاني، فأنت تمرر قائمة باستخدام الأقواس المربعة [ ]، و مكتبة pandas تدعم تحديد الأعمدة باستخدام قائمة تحتوي على أسماء الأعمدة، وهذا هو الشكل الصحيح للوصول إلى أعمدة متعددة في DataFrame. بالنسبة للكود الثالث فهنا يتم الوصول إلى عمود واحد فقط باستخدام سلسلة مباشرة، و هذا الشكل مدعوم من pandas، لذا الكود يعمل بشكل صحيح، لكن عند التعامل مع أعمدة متعددة، تحتاج إلى وضعها داخل قائمة [ ]، كما في الكود الثاني. 1 اقتباس
0 ياسر مسكين نشر الجمعة في 14:12 أرسل تقرير نشر الجمعة في 14:12 الفرق بين الكودين يكمن في طريقة استدعاء الأعمدة داخل الـ 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. 1 اقتباس
0 Ali Ahmed55 نشر الجمعة في 14:31 الكاتب أرسل تقرير نشر الجمعة في 14:31 الف شكراا لحضرتكم جدا 1 اقتباس
السؤال
Ali Ahmed55
السلام عليكم
ده الكود الاول
وده التاني
هو ليه التاني شغل والاوال الا
مع العلم ان الكود ده شغل عادي
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.