• 0

إستخدام دالة الجمع sum وكذلك group-by في pandas

لدي تلك البيانات على شكل dataframe 

Fruit        Date    Name  Number
Mangos     10/6/2016 Ahmed    7
Mangos     10/6/2016 Ahmed    8
Mangos     10/6/2016 Mike     9
Mangos     10/7/2016 Steven   10
Mangos     10/7/2016 Ahmed    1
Banana     10/7/2016 Ahmed    2
Banana     10/6/2016 Tom     15
Banana     10/6/2016 Mike    57
Banana     10/6/2016 Ahmed   65
Banana     10/7/2016 Tony     1
pineapple  10/7/2016 Ahmed    1
pineapple  10/7/2016 Tom      87
pineapple  10/7/2016 Ahmed    22
pineapple  10/7/2016 Ahmed    12
pineapple  10/7/2016 Tony     15

وأود تجميع تلك البيانات بالإسم name وكذلك الفاكهة Fruit، كالمثال التالي:

Bob,Mangos,16 #( على سبيل المثال )

كيف يمكنني عمل ذلك؟

تمّ تعديل بواسطة Mohamed Elnemr
2 اشخاص أعجبوا بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكننا القيام بذلك من خلال groupby:

####################################  التجميع على أساس عمود  ################################
df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
                              'Parrot', 'Parrot'],
                   'Max Speed': [380., 370., 24., 26.]})

df
"""
   Animal  Max Speed
0  Falcon      380.0
1  Falcon      370.0
2  Parrot       24.0
3  Parrot       26.0
"""
# التجميع حسب اسم الحيوان ثم تطبيق المتوسط الحسابي على القيم المجمعة
df.groupby(['Animal']).mean()
"""
			Max Speed
Animal
Falcon      375.0
Parrot       25.0
"""

أو المجموع لو أردت:

df.groupby(['Animal']).sum()
"""
 	      Max Speed
Animal 	
Falcon 	750.0
Parrot 	50.0
"""

التجميع على أساس أكثر من عمود:

df = pd.DataFrame({'Animal': ['Falcon', 'Falcon',
                              'Parrot', 'Parrot'],
                   'behaviour': ['carnivorous', 'carnivorous',
                              'vegetarian', 'vegetarian'],
                   'Max Speed': [380., 370., 24., 26.]})
# التجميع حسب اسم الحيوان وسلوكه ثم تطبيق المتوسط الحسابي على القيم المجمعة
df.groupby(['Animal',"behaviour"]).mean()
"""
                    Max Speed
Animal 	behaviour 	
Falcon 	carnivorous 	375.0
Parrot 	vegetarian 	  25.0
"""

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

يمكنك ببساطة إستخدام الدالة  GroupBy.sum والتي تقوم بتجميع قيم العناصر وترتيبها تبعا لتلك العناصر، باختصار ، هي تنتج الشكل الذي تريده تماما.

أنظر الكود التالي للتوضيح:

df.groupby(['Fruit','Name']).sum()

Out[1]: 
                 Number
Fruit    Name     
Mangos   Ahmed     16
         Mike      9
         Steve     10
Pinapple Ahmed     35
         Tom       87
         Tony      15
Banana   Ahmed     67
         Mike      57
         Tom       15
         Tony      1

 

تمّ تعديل بواسطة Ahmed Sharshar
1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن