الباندا: كيفية استخدام groupby والعد المشروط
يمكنك استخدام بناء الجملة الأساسي التالي لإجراء عملية التجميع والعد مع الشرط في pandas DataFrame:
df. groupby (' var1 ')[' var2 ']. apply ( lambda x:(x==' val '). sum ()). reset_index (name=' count ')
يقوم بناء الجملة هذا بتجميع صفوف DataFrame بناءً على var1 ثم يحسب عدد الصفوف حيث يساوي var2 “val”.
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
على سبيل المثال: Groupby وCount مع الشرط في Pandas
لنفترض أن لدينا DataFrame الباندا التالية التي تحتوي على معلومات حول مختلف لاعبي كرة السلة:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' pos ': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28]}) #view DataFrame print (df) team pos points 0 A Gu 18 1 A Fo 22 2 A Fo 19 3 A Fo 14 4 B Gu 14 5 B Gu 11 6 B Fo 20 7 B Fo 28
يوضح الكود التالي كيفية تجميع DataFrame حسب متغير الفريق وحساب عدد الصفوف حيث يساوي متغير pos “Gu”:
#groupby team and count number of 'pos' equal to 'Gu' df_count = df. groupby (' team ')[' pos ']. apply ( lambda x: (x==' Gu '). sum ()). reset_index (name=' count ') #view results print (df_count) team count 0 to 1 1 B 2
ومن النتيجة يمكننا أن نرى:
- لدى الفريق “أ” صف واحد حيث يكون عمود نقطة البيع مساويًا لـ “Gu”
- يحتوي الفريق B على صفين حيث عمود نقطة البيع يساوي “Gu”
يمكننا استخدام بناء جملة مشابه لإجراء عملية التجميع والعد باستخدام شرط رقمي.
على سبيل المثال، يوضح التعليمة البرمجية التالية كيفية التجميع حسب متغير الفريق وحساب عدد الصفوف التي يكون فيها متغير النقاط أكبر من 15:
#groupby team and count number of 'points' greater than 15 df_count = df. groupby (' team ')[' points ']. apply ( lambda x: (x>15). sum ()). reset_index (name=' count ') #view results print (df_count) team count 0 to 3 1 B 2
ومن النتيجة يمكننا أن نرى:
- لدى الفريق “أ” 3 أسطر حيث يكون عمود النقاط أكبر من 15
- لدى الفريق B سطرين حيث يكون عمود النقاط أكبر من 15
يمكنك استخدام بناء جملة مشابه لإجراء عملية تجميع والعد باستخدام أي شرط محدد تريده.
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في الباندا:
كيفية حساب القيم الفريدة باستخدام Pandas GroupBy
كيفية تطبيق وظيفة على Pandas Groupby
كيفية إنشاء قطعة أرض شريطية من Pandas GroupBy