حالة الباندا متى

Halt Albanda Mty



عندما يتم استيفاء أو استيفاء شرط ما ، فإن بيان الحالة بلغة الباندا يوفر مخرجات أو إرجاع قيمة. يجعل بيان الحالة من الممكن مقارنة قيمة متغير بمجموعة من القيم المحتملة. عندما تتم الإشارة إلى مجموعة القيم أو تمريرها في بيان الحالة ، يتم التحقق من كل قيمة داخل المجموعة من خلال الحالات أو الشروط الموجودة داخل العبارة. يمكننا أيضًا استخدام تعليمة if-else لإجراء نفس العملية. إذا كان شرط معين صحيحًا ، فإن عبارة if-else تتسبب في تنفيذ جزء من البرنامج النصي. تقول عبارة if-else تنفيذ هذا إذا كان الشرط صحيحًا والقيام بذلك إذا لم يكن كذلك. في هذا البرنامج التعليمي ، سنجري عمليات مختلفة باستخدام عبارات الحالة وعبارات if-else.

كيفية استخدام بيان حالة الباندا؟

يمكن إنشاء بيانات الحالة بعدة طرق. تعد الدالة NumPy where () ، التي تستخدم البنية الأساسية التالية ، أبسط طريقة لإنشاء بيان حالة في Pandas DataFrame:

مدافع [ 'اسم العمود' ] = np.where ( حالة 1 ، 'القيمة 1' ،
np. أين ( حالة اثنين ، 'القيمة 2'،
np. أين ( حالة 3 ، 'القيمة 3' ، 'القيمة 4' ) ) )







سيتحقق البيان أعلاه من كل شرط للقيمة ، وإذا تم استيفاء الشرط ، فسيتم إنشاء الناتج أو إرجاع القيمة مقابل الشرط.



المثال رقم 1: بيان حالة Pandas باستخدام وظيفة where ()

دعنا ننشئ إطار بيانات أولاً حتى نتمكن من استخدام بيان الحالة الخاص بنا. لإنشاء إطار البيانات ، سنقوم أولاً باستيراد وحدات numpy و pandas حتى نتمكن من استخدام وظائفها. سيتم استخدام pd.Dataframe () لإنشاء إطار البيانات الخاص بنا.







لقد أنشأنا إطار البيانات 'df'. يتم تمرير قاموس Python داخل pd.DataFrame () يعمل كوسيطة مع المفاتيح والقيم. سنستخدم وظيفة print () لرؤية إطار البيانات الخاص بنا.



في إطار البيانات 'df' لدينا عمودين 'اسم' و 'علامات' بقيم ['رون' و 'تيم' و 'آنا' و 'جاك' و 'روب' و 'لوسي'] و [4 ، 6 ، 8 ، 6 ، 9 ، 10] على التوالي. لنفترض أن هذا الاسم هو الأعمدة التي تخزن أسماء الطلاب والعمود 'العلامات' يخزن نتيجة بعض الاختبارات الحديثة. الآن ، سنكتب بيان حالة يضيف عمودًا جديدًا باسم 'ملاحظات' تستند قيمه إلى القيم المحددة من قبلنا ، لكل شرط.

توفر طريقة 'numpy.where ()' فهارس العناصر من مصفوفة إدخال أو عمود أو قائمة تحقق الشرط المحدد. في حالة التبديل أعلاه ، تقوم وظيفة np.where () بفحص كل عنصر في أعمدة 'العلامات'. إذا كانت القيمة مساوية أو أقل من 5 ، فإنها ستعيد 'فشل' كمخرج. إذا كانت القيمة أقل من أو تساوي 7 ، فستعود بشكل مرضٍ ، وإذا كانت القيمة أقل من 9 أو تساويها ، فستُرجع 'كبيرة'. إذا لم يكن هناك شيء ، فستكون النتيجة ممتازة.

كما يمكن ملاحظته ، تم إنشاء العمود الجديد 'ملاحظات' في إطار بيانات 'df' ، حيث يتم تخزين القيم التي يتم إرجاعها بواسطة بيان الحالة أعلاه.

المثال الثاني:

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

لقد مررنا قاموسًا به مفاتيح 'الاسم' و 'الأهداف' داخل وظيفة pd.DataFrame () لإنشاء إطار البيانات الخاص بنا. لطباعة إطار البيانات الخاص بنا ، سنستخدم وظيفة الطباعة.

كما يتضح من إطار البيانات أعلاه ، لدينا عمودين: 'الاسم' و 'الأهداف'. في اسم العمود ، لدينا أسماء اللاعبين ['جون' ، 'مارتي' ، 'كلاي' ، 'نيك' ، 'مايك' ، 'أليكس' ، 'توم' ، 'روكي']. في 'عمود' الأهداف ، لدينا إجمالي عدد الأهداف التي سجلها كل لاعب في البطولة السابقة. سنستخدم الآن بيان الحالة الخاص بنا لتصنيف هؤلاء اللاعبين بناءً على الأهداف التي سجلوها.

يتم إنشاء الحالة أعلاه باستخدام وظيفة where (). داخل الحالة ، تقوم وظيفة البيان بفحص كل عنصر في أعمدة 'العلامات' مقابل الشروط. إذا كانت القيمة في العمود 'أهداف' تساوي أو تقل عن 5 ، فستُرجع 'C'. إذا كانت القيمة في العمود 'الأهداف' تساوي أو تقل عن 9 ، فستُرجع 'ب'. سيعود 'أ' إذا كانت القيمة في العمود 'الأهداف' مساوية أو أكبر من 10. سيتم تخزين القيم التي يتم إرجاعها بواسطة العبارة في العمود الجديد 'تصنيف'. دعونا نطبع 'df' لرؤية النتائج.

تم إنشاء العمود الجديد 'التصنيف' بنجاح باستخدام البرنامج النصي أعلاه.

المثال رقم 3: بيان Pandas if-else باستخدام وظيفة apply ()

يتم استخدام محور الصف أو العمود في إطار البيانات بواسطة طريقة apply () لتنفيذ دالة. يمكننا إنشاء وظيفة محددة خاصة بنا واستخدامها في إطار البيانات لدينا في الباندا. سيتضمن شروط if-else. دعنا ننشئ إطار بياناتنا أولاً ، ثم سننشئ وظيفة سنستخدم فيها عبارة if-else لتوليد النتيجة. لإنشاء إطار البيانات الخاص بنا ، سنقوم باستيراد وحدة الباندا أولاً ، ثم سنمرر قاموسًا داخل طريقة pd.DataFrame ().

كما يتضح ، يتكون إطار البيانات لدينا من عمودين 'أ' يخزنان القيم الرقمية [23 ، 35 ، 64 ، 74 ، 85] و 'ب' مع القيم [45 ، 34 ، 61 ، 89 ، 27]. سنقوم الآن بإنشاء دالة تحدد القيمة الأكبر بين كلا العمودين في كل صف من إطار البيانات الخاص بنا.

يمكنك استخدام دالة Python lambda “pandas. DataFrame.apply () 'لتشغيل تعبير. في بايثون ، دالة lambda هي دالة مجهولة مضغوطة تقبل أي عدد من الوسائط وتنفذ تعبيراً. في النص أعلاه ، أنشأنا بيان شرط يقارن قيمة كلا العمودين ويخزن النتيجة في عمود 'المقارنة' الجديد. إذا كانت قيمة العمود 'أ' أقل من قيمة العمود 'ب' ، فستُرجع 'ب أكبر'. إذا لم يتم استيفاء الشرط ، فسيتم إرجاع 'A أكبر'.

المثال الرابع:

لنجرب مثالًا آخر باستخدام عبارة if-else داخل وظيفة application () مع إطار بيانات آخر.

لنفترض أن إطار البيانات لدينا يخزن سجلات موظفي بعض الشركات. يخزن العمود 'إمبراطورية' أسماء الموظفين ['فرانكي' ، 'هاري' ، 'لوك' ، 'بيتر' ، 'أندرو'] ، بينما يخزن العمود 'الراتب' رواتب كل موظف [1350 ، 1000 ، 900 ، 1200 ، 980] في إطار بيانات 'df'. سنقوم الآن بإنشاء بيان if-else الخاص بنا باستخدام طريقة application ().

سيتحقق الشرط أعلاه من كل قيمة في عمود 'الراتب' ويضيف 200 إلى رواتب الموظفين حيث تكون قيمة الراتب أقل من أو تساوي 1000. لقد قمنا بتخزين القيم التي تم إرجاعها من الوظيفة () في العمود الجديد ' زيادة راتب'. دعونا نلقي نظرة على النتائج من النص أعلاه.

كما ترى ، نجحت الوظيفة في إضافة 200 إلى القيم التي كانت أقل من أو تساوي 100. القيم التي كانت أكبر من 1000 ظلت دون تغيير.

استنتاج:

في هذا البرنامج التعليمي ، رأينا أنه عند استيفاء الشرط ، يقوم بيان من هذا النوع ، يسمى بيان الحالة ، بإرجاع قيمة. لقد رأينا كيف يمكنك إنشاء بيان حالة لإجراء عملية أو مهمة مطلوبة. في هذا البرنامج التعليمي ، استخدمنا الدالة np.where () والوظيفة application () لإنشاء عبارات الحالة. قمنا بتنفيذ بعض الأمثلة لتعليمك كيفية استخدام عبارات حالة الباندا باستخدام وظيفة where () وكيفية استخدام وظيفة application () لإنشاء بيانات حالة.