اختيار الأعمدة وترشيح الصفوف

تقدَّم معنا أن الجدول: صفوف وأعمدة. بحيث يمثِّل كل صف فيه علاقة مختصَّة بعنصر فرد.

قد نحتاج إلى بعض ما في الجدول للإجابة عن سؤال محدّد. سنمثل في هذا الدرس ببيانات سفية Titanic الغارقة:

  • ما أسماء الركاب الذين تجاوزت أعمارهم 35 سنة؟
  • ومن أصغر الركاب عمرًا؟

ويتحقق ذلك عن طريق آليات اختيار الأعمدة، وترشيح الصفوف، وترتيب النتائج.

معاينة الجدول

نقرأ الملف titanic.csv في إطار بيانات باسم titanic. يمثّل كل صف راكبًا، وتصف الأعمدة اسمه وعمره وفئة تذكرته وغيرها. نبدأ بأربعة صفوف بدل عرض الجدول كله.

تظهر أربعة ركاب، مع أرقام الفهرس على اليسار وأسماء الأعمدة في الأعلى. هذه بداية الملف وليست اختيارًا بحسب العمر أو النجاة.

عمود واحد أو عدة أعمدة

اختيار اسم واحد يعطي سلسلة (Series)، أما قائمة الأسماء فتعطي إطار بيانات. نختار هنا الاسم والعمر والجنس فقط.

تعرض النتيجة أعمدة الاسم والعمر والجنس بهذا الترتيب، لأول خمسة ركاب. بقي فهرس كل صف مطابقًا للجدول الأصلي.

شرط على الصفوف

من الركاب الذين تجاوزت أعمارهم 35 سنة؟ المقارنة تنتج قيمة منطقية لكل صف؛ نحتفظ بالصفوف التي تقابل True.

تبدأ تسميات الصفوف المختارة بـ 1 و6 و11؛ وكل عمر ظاهر أكبر من 35. هذه أول خمسة صفوف مطابقة، وليست أكبر خمسة أعمار.

لننظر إلى القناع نفسه قبل استخدامه لاختيار الصفوف. نعرض أول خمس قيم منه:

القناع سلسلة (Series) من النوع bool، وله فهرس الجدول نفسه. القيمة عند التسمية 1 هي True لأن عمر هذا الراكب 38 سنة؛ أما القيمة عند التسمية 3 فهي False لأن عمره 35 سنة، والشرط يطلب عمرًا أكبر من 35. عند الترشيح، نحتفظ بالصفوف التي تقابل True فقط.

نفي الشرط

يعكس العامل ~ كل قيمة في القناع: تتحول True إلى False، وتتحول False إلى True. لنطبّقه على قناع الأعمار نفسه ونقارن أول خمس قيم بما سبق:

أصبحت القيمة عند التسمية 1 هي False، وأصبحت القيم الأربع الأخرى True. بقي الفهرس كما هو؛ الذي تغيّر هو القيمة المنطقية عند كل تسمية.

نستخدم النفي الآن لاختيار الركاب الذين ليسوا من الفئة الأولى. نكوّن قناعًا لركاب الفئة الأولى، ثم نختار بالقناع المعكوس عمودي الاسم والفئة:

كل الصفوف الظاهرة من الفئة الثالثة؛ وقد تشمل بقية النتيجة ركاب الفئة الثانية أيضًا. المهم أن الفئة الأولى مستبعدة.

الجمع بين الشروط

نريد الآن الركاب الأكبر من 35 من الفئتين الثانية والثالثة. نكوّن قناعًا للعمر وقناعًا للفئة، ثم نجمعهما باستخدام & لشرط «و».

كل راكب ظاهر أكبر من 35 سنة ومن الدرجة الثانية أو الثالثة. تعرض النتيجة الاسم والعمر والدرجة فقط، مما يتيح مراجعة الشرطين معًا.

الاختيار بالموضع

ستخدم titanic.iloc المواضع التي تبدأ من صفر. نختار هنا الصفوف من الموضع 2 حتى ما قبل 5، والأعمدة من الموضع 0 حتى ما قبل 3.

أكبر القيم وترتيب الصفوف

لا تعني بداية الجدول أكبر القيم فيه. نرتّب حسب العمر، ثم معرّف الراكب لكسر التعادل.

أكبر الأعمار المعروضة 80 ثم 74 ثم 71 سنة. أصبح معرّف الراكب فهرسًا، ويحدّد ترتيبه أي صف يظهر أولًا عند تساوي العمر.