الباندا: كيفية استخدام groupby مع nlargest()


يمكنك استخدام بناء الجملة التالي لعرض أكبر عدد من القيم حسب المجموعة في pandas DataFrame:

 #display two largest values by group
df. groupby (' group_var ')[' values_var ']. nlargest ( 2 )

ويمكنك استخدام بناء الجملة التالي لإجراء عمليات معينة (مثل أخذ المجموع) على أكبر عدد من القيم لكل مجموعة في pandas DataFrame:

 #find sum of two largest values by group
df. groupby (' group_var ')[' values_var ']. apply ( lambda grp: grp.nlargest ( 2 ) .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

مثال 1: عرض أكبر قيم N حسب المجموعة

يمكن استخدام الصيغة التالية لعرض أكبر قيمتين من النقاط مجمعتين حسب الفريق :

 #display two largest points values grouped by team
df. groupby (' team ')[' points ']. nlargest ( 2 )

team   
At 2 34
      1 29
B 7 36
      8 34
Name: points, dtype: int64

تعرض النتيجة أكبر قيمتين من النقاط لكل فريق ، إلى جانب مواضع الفهرس الخاصة بهم في DataFrame الأصلي.

مثال 2: إجراء عملية على أكبر قيم N لكل مجموعة

يمكننا استخدام الصيغة التالية لحساب مجموع أكبر قيمتين نقطيتين مجمعتين حسب الفريق :

 #calculate sum of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .sum ())

team
At 63
B70
Name: points, dtype: int64

وإليك كيفية تفسير النتيجة:

  • مجموع أكبر قيمتين من النقاط للفريق A هو 63 .
  • مجموع أكبر قيمتين من النقاط للفريق B هو 70 .

يمكننا استخدام صيغة مشابهة لحساب متوسط أكبر قيمتين نقطيتين مجمعتين حسب الفريق :

 #calculate mean of two largest points values for each team
df. groupby (' team ')[' points ']. apply ( lambda grp: grp.nlargest ( 2 ) .mean ())

team
At 31.5
B 35.0
Name: points, dtype: float64

وإليك كيفية تفسير النتيجة:

  • متوسط أعلى قيمتين من النقاط للفريق A هو 31.5 .
  • متوسط أعلى قيمتين من النقاط للفريق B هو 35.0 .

ملاحظة : يمكنك العثور على الوثائق الكاملة لوظيفة GroupBy هنا .

مصادر إضافية

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

الباندا: كيفية حساب المجموع التراكمي لكل مجموعة
الباندا: كيفية حساب القيم الفريدة حسب المجموعة
الباندا: كيفية حساب الوضع حسب المجموعة
الباندا: كيفية حساب الارتباط حسب المجموعة

Add a Comment

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