الباندا: كيفية التجميع والتجميع عبر أعمدة متعددة


في كثير من الأحيان قد ترغب في تجميع وتجميع أعمدة متعددة من pandas DataFrame.

لحسن الحظ، من السهل القيام بذلك باستخدام الدالتين pandas .groupby() و .agg() .

يشرح هذا البرنامج التعليمي عدة أمثلة للاستخدام العملي لهذه الوظائف.

مثال 1: قم بالتجميع حسب عمودين وإيجاد المتوسط

لنفترض أن لدينا DataFrame الباندا التالية:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'team': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'],
                   'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]})

#view DataFrame
print (df)

  team position assists rebounds
0 AG 5 11
1 BG 7 8
2 BF 7 10
3 BG 8 6
4 BF 5 6
5 MF 7 9
6 MC 6 6
7 MC 9 10

يوضح التعليمة البرمجية التالية كيفية التجميع حسب أعمدة “الفريق” و”المنصب” والعثور على متوسط التمريرات:

 df. groupby (['team', 'position']). agg ({'assists': ['mean']}). reset_index ()


        team position assists
                          mean
0 A G 5.0
1 B F 6.0
2 B G 7.5
3 M C 7.5
4M F 7.0

يخبرنا الإخراج:

  • متوسط التمريرات الحاسمة للاعبين في المركز G من الفريق A هو 5.0 .
  • متوسط التمريرات الحاسمة للاعبين في المركز F في الفريق B هو 6.0 .
  • متوسط التمريرات الحاسمة للاعبين في المركز G من الفريق B هو 7.5 .

وما إلى ذلك وهلم جرا.

يمكننا أيضًا استخدام الكود التالي لإعادة تسمية أعمدة DataFrame الناتجة:

 #group by team and position and find mean assists
new = df. groupby (['team', 'position']). agg ({'assists': ['mean']}). reset_index ()

#rename columns
new.columns = ['team', 'pos', 'mean_assists']

#view DataFrame
print (new)

	team pos mean_assists
0 A G 5.0
1 B F 6.0
2 B G 7.5
3 M C 7.5
4M F 7.0

مثال 2: التجميع حسب عمودين والعثور على إحصائيات متعددة

لنفترض أننا نستخدم نفس الباندا DataFrame كما في المثال السابق:

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'team': ['A', 'B', 'B', 'B', 'B', 'M', 'M', 'M'],
                   'position': ['G', 'G', 'F', 'G', 'F', 'F', 'C', 'C'],
                   'assists': [5, 7, 7, 8, 5, 7, 6, 9],
                   'rebounds': [11, 8, 10, 6, 6, 9, 6, 10]})

يوضح التعليمة البرمجية التالية كيفية العثور على المتوسط والحد الأقصى لعدد الكرات المرتدة، مجمعة في عمودي “الفريق” و”الموضع”:

 df. groupby (['team', 'position']). agg ({'rebounds': ['median', 'max']}). reset_index ()


        team position rebounds
                         median max
0 A G 11 11
1 B F 8 10
2 B G 7 8
3 M C 8 10
4 M F 9 9

يخبرنا الإخراج:

  • متوسط المرتدات للاعبين في المركز G في الفريق A هو 11 .
  • الحد الأقصى للمرتدات للاعبين في المركز G من فريق A هو 11 .
  • متوسط المرتدات للاعبين في المركز F لفريق B هو 8 .
  • الحد الأقصى للمرتدات للاعبين في المركز F من فريق B هو 10 .

وما إلى ذلك وهلم جرا.

مصادر إضافية

كيفية تصفية Pandas DataFrame بشروط متعددة
كيفية حساب القيم المفقودة في Pandas DataFrame
كيفية تكديس إطارات بيانات Pandas المتعددة

Add a Comment

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