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

Mjmw T Albanda



تعد تقنية groupby ضرورية نظرًا لمدى جودة تجميع البيانات من حيث الأداء وحجم الكود. يصف مصطلح 'groupby' عادةً إجراءً يتضمن الخطوات التالية:

  • شق : بتطبيق شروط معينة على مجموعات البيانات ، يمكننا تقسيم البيانات إلى مجموعات.
  • التقديم : عملية نطبق فيها طريقة بشكل فردي على كل مجموعة.
  • الجمع : إجراء لدمج مجموعات البيانات المختلفة لتكوين بنية بيانات بعد استخدام طريقة groupby ().

في عملية التجميع ، يتم حساب إحصائية موجزة لكل مجموعة. لكل مجموعة ، تقوم الطريقة التجميعية بإرجاع قيمة مجمعة (قيمة مفردة). يمكننا إجراء عدة عمليات تجميع على البيانات المجمعة بعد تقسيم البيانات إلى مجموعات باستخدام وظيفة groupby.







لماذا توفر Pandas مجموعة متنوعة من طرق تجميع البيانات؟

تقدم Pandas مجموعة واسعة من الميزات والوظائف للمساعدة في تحليل البيانات وتجميعها. إن استخدام أساليب pivot () و groupby () و pivot_table () ، على سبيل المثال ، يقدم كل منها منظورًا مختلفًا حول كيفية تجميع البيانات. إنها توفر مناهج عملية لتنفيذ المهام المختلفة بدلاً من إعادة تجميعها ببساطة.



كيفية استخدام الدالة .agg () في الباندا

المتوسط ​​البسيط أو مجموع القيم هو دالة التجميع الأكثر استخدامًا. يمكنك استخدام عمود إطار البيانات أو عدة أعمدة لاستدعاء دالة مجمعة. سترى العديد من الطرق لتجميع البيانات باستخدام طريقة Pandas groupby. لتوضيح مدى سهولة الإجراء ، دعنا نلقي نظرة على بعض الأمثلة الواردة أدناه. تعتبر العمليات الحسابية الأساسية مثل المجموع ، والحد الأدنى ، والحد الأقصى ، والانحراف المطلق ، والانحراف المعياري ، والمتوسط ​​، والوسيط ، والتباين ، والمنتج من بين وظائف التجميع المضمنة الأكثر استخدامًا. لتلخيص البيانات ، يمكننا الجمع بين الدالة groupby و agg ().



مثال # 01: تحديد مجموع الأعمدة عن طريق تجميع البيانات باستخدام دالة groupby.agg ()

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





كما ترى ، استخدمنا قاموس الباندا لإنشاء إطار البيانات الخاص بنا. يتكون إطار بيانات df الخاص بنا من أربعة أعمدة: 'المريض' و 'المجموعة' و 'العمر' و 'زجاجات الدم'. يتم احتواء قيم البيانات ('علي' ، 'جون' ، 'مايك' ، 'مايك' ، 'جون' ، 'علي' ، 'علي' ، 'مايك') في العمود 'المريض' بينما قيم البيانات ('أ' '،' أ '،' ب '،' ج '،' أ '،' ج '،' ج '،' ب ') ، (21 ، 22 ، 24 ، 21 ، 20 ، 24 ، 22 ، 22) و ( 2 ، 3 ، 1 ، 1 ، 2 ، 3 ، 2 ، 1) موجودة في الأعمدة 'المجموعة' و 'العمر' و 'زجاجات الدم' على التوالي. لنفترض أنه يتعين علينا تحديد مجموع القيم في عمود 'blood_bottles' من خلال تجميع القيم في عمود 'group'.



بالنسبة لبيانات المجموعة 'أ' ، يكون مجموع قيم 'زجاجات_الدم' هو 7. بالنسبة لقيم المجموعة 'ب' و 'ج' ، يكون مجموع قيم 'زجاجات الدم' هو 2 و 6 على التوالي. يمكننا أيضًا تجميع عدة أعمدة لتحديد مجموع كل مجموعة.

كما يمكن ملاحظته ، فقد مررنا قائمة تسميات الأعمدة ، أي ['المريض' ، 'المجموعة'] داخل وظيفة groupby () لإنشاء مجموعات الفئات في كل عمود محدد. لكل مجموعة من الأعمدة المحددة ، حددنا مجموع القيم في 'blood_bottles'. على سبيل المثال ، 'علي' موجود في قيم عمود 'المجموعة' أ و ج. في المجموعة أ ، مجموع قيم 'زجاجات الدم' لعلي هو 2 و 5 في المجموعة 'ج'.

المثال 02: تطبيق وظائف متعددة على عمود واحد من إطار البيانات باستخدام دالة groupby.agg ()

يمكن تطبيق التجميعات المتعددة باستخدام طريقة 'groupby ()' باستخدام دالة pandas agg (). يمكن تمرير قائمة قابلة للاستدعاء إلى الطريقة. دعونا نلقي نظرة على كيفية تجميع بياناتنا باستخدام الأساليب المضمنة في المكتبة الخفية. على عكس المثال السابق ، سنقوم بتطبيق وظائف متعددة على عمود واحد من إطار البيانات. سيتم استخدام الوظيفة pd.DataFrame () لإنشاء إطار بيانات لهذا مع عمود واحد على الأقل يحتوي على قيم عددية.


تم إنشاء إطار البيانات المطلوب بعمود رقمي واحد ، أي 'علامات' بقيم 41 ، و 40 ، و 35 ، و 39 ، و 49 ، و 31 ، و 34 ، و 42. وهناك 3 أعمدة أخرى 'الطالب' و 'الموضوعات' و 'الدرجة' في إطار البيانات الخاص بنا والذي يمكن تقسيمه إلى مجموعات باستخدام وظيفة groupby (). القيم في عمود 'الطلاب' و 'المواد' هي ('Harry' و 'Ron' و 'Harry' و 'Lana' و 'Sam' و 'Ron' و 'Lana' و 'Max') و ('C ++' ، 'JAVA'، 'Python'، 'Python'، 'AI'، 'JAVA'، 'C ++'، 'AI'). بينما تحتوي درجة العمود على قيم البيانات كسلاسل ، أي ('Ms' ، 'Bs' ، 'Bs' ، 'Ms' ، 'Ms' ، 'Ms' ، 'Bs' ، 'Bs'). لنفترض أنه يتعين علينا تجميع بيانات العمود 'الموضوعات' وتحديد كل من متوسط ​​ومجموع 'علامات' العمود لكل بيانات مجمعة.

لقد حددنا اسم عمود 'الموضوعات' كسلسلة داخل وظيفة groupby () لتحويل البيانات إلى مجموعات من الفئات. بالنسبة لعمود العلامات ، استخدمنا طريقة agg () ، وداخل الدالة agg () حددنا الدالتين numpy np.sum و np.mean للعثور على مجموع ومتوسط ​​علامات كل مجموعة من البيانات في موضوعات العمود. مجموع ومتوسط ​​قيمة المجموعة 'AI' هي 91 و 45.5 ، على التوالي. مجموع علامات القيمة 'C ++' هو 75 ، ومتوسط ​​القيمة 37.5. بالنسبة للمجموعة JAVA ، يكون مجموع العلامات 71 والقيمة المتوسطة 35.5 ، في حين أن مجموع ومتوسط ​​قيمة Python هما 74 و 37 على التوالي.

مثال # 03: تطبيق دالات متعددة على أعمدة متعددة لإطار البيانات باستخدام دالة groupby.agg ()

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

توجد أربعة أعمدة في إطار البيانات الذي تم إنشاؤه حديثًا بأسماء 'لاعب' و 'أقل_درجة' و 'أعلى درجة' و 'موقع'. في العمود 'player' ، قمنا بتخزين أسماء بعض اللاعبين كقيم بيانات سلسلة ('Leo' و 'Alex' و 'Leo' و 'Fin' و 'Leo' و 'Alex' و 'Fin' و ' Fin ') ، في العمود 'أقل_درجات' ، توجد أقل درجات اللاعبين لبعض المباريات (12 ، 34 ، 2 ، 21 ، 9 ، 1 ، 0 ، 34) ، بينما في العمود 'أعلى الدرجات' لدينا أعلى الدرجات للاعبين (12 ، 34 ، 2 ، 21 ، 9 ، 1 ، 0 ، 34) وفي العمود 'الموقع' توجد أسماء الملاعب التي لعب فيها اللاعبون مبارياتهم ('فرنسا' ، 'إنجلترا' ، 'دبي' ، ' دبي ، 'إنجلترا' ، 'فرنسا' ، 'دبي' ، 'فرنسا').

لنفترض أنه بعد تجميع البيانات في عمود 'اللاعبون' ، يتعين علينا العثور على متوسط ​​قيم العمود 'أقل عدد من الدرجات' ومجموع قيم بيانات 'أعلى درجة' لكل مجموعة.

داخل دالة agg () ، مررنا قاموس Python {‘most_score’: ‘sum’ ، ‘less_score’: ’mean’} للعثور على مجموع ومتوسط ​​القيمة لعمود معين مقابل كل مجموعة. يمكن ملاحظة أن القيمة المجمعة Alex لديها مجموع 'أعلى درجة' قيمة 132 ومتوسط ​​قيمة 'أقل درجة' 17.5. بالنسبة إلى 'Fin' ، يكون مجموع القيم هو 199 والمتوسط ​​18.3333333 في العمودين 'أعلى درجة' و 'أقل درجة' على التوالي. قيمة المجموعة Leo لها مجموع قيمة 180 في 'أعلى درجة' ومتوسط ​​قيمة 7.666667 في 'أقل_درجة'.

استنتاج

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