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

السؤال

نشر (معدل)

لدي تلك البيانات على شكل 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...