الباندا: كيفية اختيار الأعمدة بناءً على الحالة
يمكنك استخدام الطرق التالية لتحديد الأعمدة في pandas DataFrame حسب الشرط:
الطريقة الأولى: تحديد الأعمدة التي تحتوي على صف واحد على الأقل يفي بالشرط
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
الطريقة الثانية: تحديد الأعمدة التي تستوفي فيها كافة الصفوف الشرط
#select columns where all rows have a value greater than 2
df. loc [:, (df > 2 ). all ()]
الطريقة الثالثة: تحديد الأعمدة التي تحتوي على صف واحد على الأقل يستوفي شروطًا متعددة
#select columns where at least one row has a value between 10 and 15
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
توضح الأمثلة التالية كيفية استخدام كل طريقة مع الباندا DataFrame التالية:
import pandas as pd #createDataFrame df = pd. DataFrame ({' apples ': [7, 3, 3, 4, 3], ' oranges ': [2, 0, 2, 0, 1], ' bananas ': [5, 0, 4, 0, 12]}, index=[' Farm1 ',' Farm2 ',' Farm3 ',' Farm4 ',' Farm5 ']) #view DataFrame print (df) apples oranges bananas Farm1 7 2 5 Farm2 3 0 0 Farm3 3 2 4 Farm4 4 0 0 Farm5 3 1 12
المثال 1: حدد الأعمدة التي يفي فيها صف واحد على الأقل بالشرط
يمكننا استخدام الكود التالي لتحديد أعمدة من DataFrame حيث يحتوي صف واحد على الأقل في العمود على قيمة أكبر من 2:
#select columns where at least one row has a value greater than 2
df. loc [:, (df > 2 ). any ()]
apples bananas
Farm1 7 5
Farm2 3 0
Farm3 3 4
Farm4 0 0
Farm5 3 12
لاحظ أنه تم إرجاع أعمدة التفاح والموز لأن هذه الأعمدة تحتوي على صف واحد على الأقل بقيمة أكبر من 2.
المثال 2: حدد الأعمدة التي تستوفي فيها جميع الصفوف الشرط
يمكننا استخدام الكود التالي لتحديد أعمدة من DataFrame حيث يحتوي كل صف في العمود على قيمة أكبر من 2:
#select columns where every row has a value greater than 2
df. loc [:, (df > 2 ). all ()]
apples
Farm1 7
Farm2 3
Farm3 3
Farm4 4
Farm5 3
لاحظ أنه يتم إرجاع عمود التفاح فقط لأنه العمود الوحيد الذي يحتوي كل صف في العمود على قيمة أكبر من 2.
المثال 3: حدد الأعمدة التي يفي فيها صف واحد على الأقل بعدة شروط
يمكننا استخدام الكود التالي لتحديد أعمدة من DataFrame حيث يحتوي صف واحد على الأقل في العمود على قيمة تتراوح بين 10 و15:
#select columns where every row has a value greater than 2
df. loc [:, ((df>= 10 ) & (df<= 15 )). any ()]
bananas
Farm1 5
Farm2 0
Farm3 4
Farm4 0
Farm5 12
لاحظ أنه يتم إرجاع عمود الموز فقط لأنه العمود الوحيد الذي يحتوي فيه صف واحد على الأقل في العمود على قيمة تتراوح بين 10 و15.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
كيفية اختيار الأعمدة بالاسم في الباندا
كيفية تحديد الأعمدة حسب الفهرس في Pandas
كيفية تحديد الأعمدة التي تحتوي على سلسلة محددة في Pandas