Data Aggregation in Python

Python Tutorial 6.0

After learning to merge and appending in Python, let's now explore how to do aggregation in the data using Python. By now we have entered into an intermediate level of Python programming, few more articles and you would be ready to enter the arena of advance python.

But before entering into the dangerous combat arena with the furious statistical techniques, better learn all the basic moves !!!

Please download the .csv file that you can use to practice the codes.

import pandas as p



sample output : 


Only showing top 20 observations

Let's play our favorite game "Question and answer" to learn the concepts.

Q1. How many rows are there in the dataset?

Ans:  Aggregation['Product'].count()    # we can take  any column instead of product, the                                                               result would remain same 


Q2. How much is the total sales?

Ans:  Aggregation['Sales'].sum()


Q3. What is the total sale of 'APAC' Region?

Ans.  Aggregation['Sales'][(Aggregation.Region=='APAC')].sum() 


Q4. What is the total sale of Product 'A' in 'APAC' Region?

Ans. Aggregation['Sales'][(Aggregation.Product=='A')&(Aggregation.Region=='APAC') ].sum() 


Apart from count and sum, there are many functions which you can use to get basic statistic about the data. e. g.

mean, median, min, max, mode and std etc.

Q5. How many unique products are there?

Ans:  Aggregation['Product'].nunique()

Let's learn how to aggregate the data group wise

Q6. How to get a list of all distinct products?

Ans.  Aggregation.groupby(['Product']).groups.keys() 


Q7. Get sales by products

Ans. Aggregation.groupby('Product')['Sales'].sum()


Q8. Get sales by Products of 'APAC' Region only 

Ans.  Aggregation[Aggregation['Region']=='APAC'].groupby('Product')['Sales'].sum()


Let me just add one more dimension to it

Let's now aggregate the data using multiple variables with multiple measures. 

Q9. Create a table of total sales by Product and Region 

Ans.  Aggregation.groupby(['Product','Region'])['Sales'].sum()


Q10. Create a table of total sales and frequency by Product and Region 

Ans.  Aggregation.groupby(['Product','Region']).agg({'Sales':{'total_sales':'sum','Frequency':'count'}})


Whatever be the operation and calculation we have done in above examples either would create Panda Series or Panda Dataframe.

If we go theoretically then one column's output is called series and multiple column's output is called dataframe.

We can change it by a small change in syntax. Lets see how..

Q9. from above examples

a=Aggregation.groupby(['Product','Region'])['Sales'].sum()    # produce data series



Add only additional bracket to aggregated variable

a=Aggregation.groupby(['Product','Region'])[['Sales']].sum()    # produce data frame



One more concept I would like to tell you is

If you see the output of Q9 then you must have noticed that in Product column there are blank entries populated if a product is same. It is called indexing; an output is indexed by Product and Region. 

Since we may want to utilize this dataframe for further data processing, so it is good if we fill these blank entries.

To avoid this index(blank entries), pass “as_index=False” to the groupby operation.



and that's it for now! We have learned aggregation ... 

Humble appeal

Download our Android app 

Enjoy reading our other articles and stay tuned with us.

Kindly do provide your feedback in the 'Comments' Section and share as much as possible.