الباندا: كيفية حساب النسبة المئوية للمجموع داخل المجموعة
يمكنك استخدام بناء الجملة التالي لحساب النسبة المئوية للإجمالي ضمن مجموعات الباندا:
df[' values_var '] / df. groupby (' group_var ')[' values_var ']. transform (' sum ')
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: احسب النسبة المئوية للمجموع داخل المجموعة
لنفترض أن لدينا DataFrame الباندا التالي الذي يعرض النقاط التي سجلها لاعبو كرة السلة من فرق مختلفة:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
' points ': [12, 29, 34, 14, 10, 11, 7, 36, 34, 22]})
#view DataFrame
print (df)
team points
0 to 12
1 to 29
2 to 34
3 to 14
4 to 10
5 B 11
6 B 7
7 B 36
8 B 34
9 B 22
يمكننا استخدام الصيغة التالية لإنشاء عمود جديد في DataFrame يعرض النسبة المئوية لإجمالي النقاط المسجلة، مجمعة حسب الفريق:
#calculate percentage of total points scored grouped by team
df[' team_percent '] = df[' points '] / df. groupby (' team ')[' points ']. transform (' sum ')
#view updated DataFrame
print (df)
team points team_percent
0 A 12 0.121212
1 A 29 0.292929
2 A 34 0.343434
3 A 14 0.141414
4 A 10 0.101010
5 B 11 0.100000
6 B 7 0.063636
7 B 36 0.327273
8 B 34 0.309091
9 B 22 0.200000
يشير العمود team_percent إلى النسبة المئوية لإجمالي النقاط التي سجلها هذا اللاعب في فريقه.
على سبيل المثال، سجل لاعبو الفريق “أ” إجمالي 99 نقطة.
لذا فإن اللاعب في الصف الأول من DataFrame الذي سجل 12 نقطة سجل إجمالي 12/99 = 12.12% من إجمالي نقاط الفريق أ.
وبالمثل، فإن اللاعب في الصف الثاني من DataFrame الذي سجل 29 نقطة سجل إجمالي 29/99 = 29.29% من إجمالي نقاط الفريق A.
وما إلى ذلك وهلم جرا.
ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة GroupBy هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
الباندا: كيفية حساب المجموع التراكمي لكل مجموعة
الباندا: كيفية حساب القيم الفريدة حسب المجموعة
الباندا: كيفية حساب الوضع حسب المجموعة
الباندا: كيفية حساب الارتباط حسب المجموعة