كيفية تحويل إخراج pandas groupby إلى dataframe


يشرح هذا البرنامج التعليمي كيفية تحويل إخراج pandas GroupBy إلى pandas DataFrame.

مثال: تحويل إخراج Pandas GroupBy إلى DataFrame

لنفترض أن لدينا DataFrame الباندا التالي الذي يعرض النقاط التي سجلها لاعبو كرة السلة من فرق مختلفة:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'C', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 10, 12, 22, 15, 10]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2AF 7
3 AC 10
4 BG 12
5 BF 22
6 BF 15
7 BF 10

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

 #count number of players, grouped by team and position
group = df. groupby ([' team ', ' position ']). size ()

#viewoutput
print (group)

team position
AC 1
      F 1
      G2
BF 3
      G 1
dtype: int64

من خلال الإخراج، يمكننا رؤية العدد الإجمالي للاعبين، مجمعين حسب الفريق والمركز .

ومع ذلك، لنفترض أننا نريد أن تعرض مخرجاتنا اسم الفريق في كل صف مثل هذا:

 team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

لتحقيق هذه النتيجة، يمكننا ببساطة استخدام set_index() عند تشغيل GroupBy:

 #count number of players, grouped by team and position
df_out = df. groupby ([' team ', ' position ']). size (). reset_index (name=' count ')

#viewoutput
print (df_out)

  team position count
0 AC 1
1 AF 1
2 AG 2
3 BF 3
4 BG 1

يظهر الإخراج الآن بالتنسيق المطلوب.

لاحظ أن وسيطة الاسم في set_index() تحدد اسم العمود الجديد الذي تنتجه GroupBy.

يمكننا أيضًا أن نؤكد أن النتيجة هي بالفعل Pandas DataFrame:

 #display object type of df_out
type (df_out)

pandas.core.frame.DataFrame

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

مصادر إضافية

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

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

Add a Comment

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