كيفية كتابة بيان الحالة في الباندا (مع مثال)
عبارة الحالة هي نوع من البيانات التي تتنقل عبر الشروط وترجع قيمة عند استيفاء الشرط الأول.
إن أبسط طريقة لتنفيذ بيان الحالة في Pandas DataFrame هي استخدام الدالة NumPywhere() ، والتي تستخدم بناء الجملة الأساسي التالي:
df[' new_column '] = np. where (df[' col2 ']<9, 'value1', n.p. where (df[' col2 ']<12, 'value2', n.p. where (df[' col2 ']<15, 'value3', 'value4')))
تبحث هذه الدالة المحددة في القيمة الموجودة في العمود المسمى col2 وترجع:
- ” value1 ” إذا كانت القيمة في col2 أقل من 9
- ” value2 ” إذا كانت القيمة في العمود 2 أقل من 12
- ” value3 ” إذا كانت القيمة في col2 أقل من 15
- ” القيمة 4 ” إذا لم يكن أي من الشروط السابقة صحيحا
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: بيان الحالة في Pandas
لنفترض أن لدينا DataFrame الباندا التالية:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' player ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], ' points ': [6, 8, 9, 9, 12, 14, 15, 17, 19, 22]}) #view DataFrame df player points 0 1 6 1 2 8 2 3 9 3 4 9 4 5 12 5 6 14 6 7 15 7 8 17 8 9 19 9 10 22
يمكننا استخدام الصيغة التالية لكتابة بيان حالة يقوم بإنشاء عمود جديد يسمى الفئة التي يتم تحديد قيمها من خلال القيم الموجودة في عمود النقاط :
#add 'class' column using case-statement logic df[' class '] = np. where (df[' points ']<9, 'Bad', n.p. where (df[' points ']<12, 'OK', n.p. where (df[' points ']<15, 'Good', 'Great'))) #view updated DataFrame df player points class 0 1 6 Bad 1 2 8 Bad 2 3 9 OK 3 4 9 OK 4 5 12 Good 5 6 14 Good 6 7 15 Great 7 8 17 Great 8 9 19 Great 9 10 22 Great
نظر بيان الحالة إلى القيمة الموجودة في عمود النقاط وأعاد:
- ” سيئ ” إذا كانت القيمة في عمود النقاط أقل من 9
- ” موافق ” إذا كانت القيمة في عمود النقاط أقل من 12
- ” جيد ” إذا كانت القيمة في عمود النقاط أقل من 15
- ” رائع ” إذا لم يكن أي من الشروط السابقة صحيحا
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة NumPywhere() هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في Pandas:
كيفية إنشاء عمود جديد بناءً على شرط في Pandas
كيفية استخدام الدالة NumPy Where() بشروط متعددة