الباندا: كيفية إنشاء 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() هنا .

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:

الباندا: كيفية إضافة مرشح إلى الجدول المحوري
الباندا: كيفية فرز الجدول المحوري حسب القيم في العمود
الباندا: كيفية إنشاء جدول محوري بمجموع القيم

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *