الباندا: كيفية إنشاء pivottable بالنسب المئوية
يمكنك استخدام بناء الجملة التالي لإضافة عمود إلى جدول محوري في الباندا يعرض النسبة المئوية للإجمالي لعمود معين:
my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100
يضيف بناء الجملة هذا عمودًا جديدًا يسمى % من النقاط إلى جدول محوري يسمى my_table الذي يعرض النسبة المئوية لإجمالي القيم في عمود النقاط .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: قم بإنشاء Pandas PivotTable باستخدام النسب المئوية
لنفترض أن لدينا DataFrame الباندا التالي الذي يوضح عدد النقاط التي سجلها لاعبو كرة السلة المختلفون:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['Guard', 'Guard', 'Forward', 'Forward', 'Guard', 'Guard', 'Forward', 'Forward'], ' points ': [22, 30, 14, 15, 19, 30, 23, 20]}) #view DataFrame print (df) team position points 0 A Guard 22 1A Guard 30 2 A Forward 14 3 A Forward 15 4 B Guard 19 5 B Guard 30 6 B Forward 23 7 B Forward 20
يمكننا استخدام الدالة Pivot_table() لإنشاء جدول محوري يوضح مجموع النقاط حسب الفريق والمنصب:
#create pivot table to calculate sum of points by team and position
my_table = pd. pivot_table (df, index=[' team ', ' position '], aggfunc=' sum ')
#view pivot table
print (my_table)
points
team position
A Forward 29
Guard 52
B Forward 43
Guard 49
ومن النتيجة يمكننا أن نرى:
- سجل مهاجمو الفريق A إجمالي 29 نقطة.
- أحرز حراس الفريق “أ” إجمالي 52 نقطة.
- سجل مهاجمو الفريق B إجمالي 43 نقطة.
- سجل حراس الفريق B ما مجموعه 49 نقطة.
يمكننا بعد ذلك استخدام بناء الجملة التالي لإضافة عمود جديد يسمى % النقاط الذي يعرض النسبة المئوية لإجمالي النقاط لكل صف:
#add column that displays points as a percentage of total points my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100 #view updated pivot table print (my_table) points % points team position A Forward 29 16.763006 Guard 52 30.057803 B Forward 43 24.855491 Guard 49 28.323699
يعرض عمود % Points الجديد الآن قيم النقاط كنسبة مئوية من إجمالي النقاط.
لاحظ أيضًا أنه يمكنك استخدام الدالة round() لتقريب قيم النسبة المئوية إلى عدد معين من المنازل العشرية.
#add column that displays points as a percentage of total points (rounded) my_table[' % points '] = round ((my_table[' points ']/my_table[' points ']. sum ())* 100 , 2 ) #view updated pivot table print (my_table) points % points team position A Forward 29 16.76 Guard 52 30.06 B Forward 43 24.86 Guard 49 28.32
يتم الآن تقريب قيم النسبة المئوية إلى منزلتين عشريتين.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة Pandas Pivot_table() هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
الباندا: كيفية إضافة مرشح إلى الجدول المحوري
الباندا: كيفية فرز الجدول المحوري حسب القيم في العمود
الباندا: كيفية إنشاء جدول محوري بمجموع القيم