اذهب إلى المحتوى
  • 0

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

Mohamed Elnemr

السؤال

لدي تلك البيانات على شكل 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 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
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...