الباندا: كيفية حساب الترتيب في كائن groupby
يمكنك استخدام بناء الجملة التالي لحساب ترتيب القيم في كائن GroupBy في الباندا:
df[' rank '] = df. groupby ([' group_var '])[' value_var ']. rank ()
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: حساب الترتيب في كائن GroupBy
لنفترض أن لدينا DataFrame الباندا التالي الذي يعرض النقاط التي سجلها لاعبو كرة السلة من فرق مختلفة:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'C', 'C', 'C'],
' points ': [10, 10, 12, 15, 19, 23, 20, 20, 26]})
#view DataFrame
print (df)
team points
0 to 10
1 to 10
2 to 12
3 to 15
4 B 19
5 B 23
6 C 20
7 C 20
8 C 26
يمكننا استخدام الصيغة التالية لحساب ترتيب قيم النقاط لكل فريق:
#add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank ()
#view updated DataFrame
print (df)
team points points_rank
0 to 10 1.5
1 to 10 1.5
2 to 12 3.0
3 to 15 4.0
4 B 19 1.0
5 B 23 2.0
6 C 20 1.5
7 C 20 1.5
8 C 26 3.0
افتراضيًا، تقوم الدالة Rank() بتعيين قيم الترتيب بترتيب تصاعدي وتستخدم متوسط الترتيب في حالة التعادل.
ومع ذلك، يمكننا استخدام الطريقة والوسائط من أسفل إلى أعلى لترتيب القيم بطريقة مختلفة:
#add ranking column to data frame
df[' points_rank '] = df. groupby ([' team '])[' points ']. rank (' dense ', ascending= False )
#view updated DataFrame
print (df)
team points points_rank
0 to 10 3.0
1 to 10 3.0
2 to 12 2.0
3 to 15 1.0
4 B 19 2.0
5 B 23 1.0
6 C 20 2.0
7 C 20 2.0
8 C 26 1.0
تقوم هذه الطريقة بتعيين قيمة 1 لأكبر قيمة في كل مجموعة.
يمكنك العثور على قائمة كاملة بطرق التصنيف التي يمكنك استخدامها مع وظيفة Rank() هنا .
ملاحظة : يمكنك العثور على الوثائق الكاملة لعملية GroupBy في الباندا هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ العمليات الشائعة الأخرى في الباندا:
الباندا: كيفية حساب المجموع التراكمي لكل مجموعة
الباندا: كيفية حساب القيم الفريدة حسب المجموعة
الباندا: كيفية حساب الارتباط حسب المجموعة