الباندا: كيفية إضافة الإجماليات الفرعية إلى الجدول المحوري
في كثير من الأحيان قد ترغب في إضافة الإجماليات الفرعية إلى جدول الباندا المحوري.
لحسن الحظ، من السهل القيام بذلك باستخدام وظائف الباندا المدمجة.
يوضح المثال التالي كيفية القيام بذلك.
مثال: إضافة الإجماليات الفرعية إلى Pandas PivotTable
لنفترض أن لدينا DataFrame الباندا التالية التي تحتوي على معلومات حول مختلف لاعبي كرة السلة:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'], ' all_star ': ['Y', 'N', 'Y', 'Y', 'N', 'N', 'N', 'Y'], ' points ': [4, 4, 6, 8, 9, 5, 5, 12]}) #view DataFrame print (df) team position all_star points 0 AGY 4 1 AGN 4 2 AFY 6 3 AFY 8 4 BGN 9 5 BFN 5 6 BFN 5 7 BFY 12
يمكننا استخدام الكود التالي لإنشاء جدول محوري في الباندا يعرض مجموع النقاط لكل مجموعة من الفريق و all_star والموضع في DataFrame:
#create pivot table
my_table = pd. pivot_table (df, values=' points ',
index=[' team ', ' all_star '],
columns=' position ',
aggfunc=' sum ')
#view pivot table
print (my_table)
FG position
team all_star
AN NaN 4.0
Y 14.0 4.0
BN 10.0 9.0
Y 12.0 NaN
لنفترض الآن أننا نريد إضافة صف الإجماليات الفرعية الذي يعرض إجمالي النقاط الفرعية لكل فريق ومركز.
يمكننا استخدام بناء الجملة التالي للقيام بذلك:
#add subtotals row to pivot table
p.d. concat ([
y. append ( y.sum (). rename ((x, ' Total ')))
for x, y in my_table. groupby (level= 0 )
]). append ( my_table.sum (). rename ((' Large ', ' Total ')))
position F G
team all_star
A N NaN 4.0
Y 7.0 4.0
Overall 7.0 8.0
B N 5.0 9.0
Y 12.0 NaN
Total 17.0 9.0
Grand Total 24.0 17.0
لدينا الآن صفين للإجمالي الفرعي يوضحان الإجمالي الفرعي لكل فريق ومركز، بالإضافة إلى صف إجمالي يوضح الإجمالي الكلي لكل عمود.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة Pandas Pivot_table() هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
الباندا: كيفية إنشاء جدول محوري بعدد القيم
الباندا: كيفية استبدال قيم NaN في الجدول المحوري بالأصفار
الباندا: كيفية تحويل PivotTable إلى DataFrame