Grouping and Aggregating with Pandas

15 Mar, 2021
In this article, we are going to see grouping and aggregating using pandas. Grouping and aggregating will help to achieve data analysis easily using various functions. These methods will help us to the group and summarize our data and make complex analysis comparatively easy.  
Creating a sample dataset of marks of various subjects.
Python
# import moduleimport pandas as pd  # Creating our datasetdf = pd.DataFrame([[9, 4, 8, 9],                   [8, 10, 7, 6],                   [7, 6, 8, 5]],                  columns=['Maths',  'English',                            'Science', 'History'])  # display datasetprint(df)
Output:
Aggregation in pandas provides various functions that perform a mathematical or logical operation on our dataset and returns a summary of that function. Aggregation can be used to get a summary of columns in our dataset like getting sum, minimum, maximum, etc. from a particular column of our dataset. The function used for aggregation is agg(), the parameter is the function we want to perform.
Some functions used in the aggregation are:
Function Description:
sum()         :Compute sum of column values
min()          :Compute min of column values
max()         :Compute max of column values
mean()       :Compute mean of column
size()          :Compute column sizes
describe()  :Generates descriptive statistics
first()          :Compute first of group values
last()          :Compute last of group values
count()       :Compute count of column values
std()           :Standard deviation of column
var()           :Compute variance of column
sem()         :Standard error of the mean of column
Examples:
The sum() function is used to calculate the sum of every value.
Python
df.sum()
Output:
The describe() function is used to get a summary of our dataset
Python
df.describe()
Output:
We used agg() function to calculate the sum, min, and max of each column in our dataset.
Python
df.agg(['sum', 'min', 'max'])
Output:
Grouping is used to group data using some criteria from our dataset. It is used as split-apply-combine strategy.
Splitting the data into groups based on some criteria.
Applying a function to each group independently.
Combining the results into a data structure.
Examples:
We use groupby() function to group the data on “Maths” value. It returns the object as result.
Python
df.groupby(by=['Maths'])
Output:
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000012581821388>
Applying groupby() function to group the data on “Maths” value. To view result of formed groups use first() function.
Python
a = df.groupby('Maths')a.first()
Output:
First grouping based on “Maths” within each team we are grouping based on “Science” 
Python
b = df.groupby(['Maths', 'Science'])b.first()
Output:
Here we are using a dataset of diamond information.
Python
# import moduleimport numpy as npimport pandas as pd  # reading csv filedataset = pd.read_csv("diamonds.csv")  # printing first 5 rowsprint(dataset.head(5))
Output:
We group by using cut and get the sum of all columns.
Python
dataset.groupby('cut').sum()
Output:
Here we are grouping using cut and color and getting minimum value for all other groups.
Python
dataset.groupby(['cut', 'color']).agg('min')
Output:
Here we are grouping using color and getting aggregate values like sum, mean, min, etc. for the price group.
Python
# dictionary having key as group name of price and# value as list of aggregation function # we want to perform on group priceagg_functions = {    'price':    ['sum', 'mean', 'median', 'min', 'max', 'prod']}  dataset.groupby(['color']).agg(agg_functions)
Output:
We can see that in the prod(product i.e. multiplication) column all values are inf, inf is the result of a numerical calculation that is mathematically infinite.
Picked
Python-pandas
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
How to Install PIP on Windows ?
Python Classes and Objects
Python OOPs Concepts
Introduction To PYTHON
Python | os.path.join() method
How to drop one or multiple columns in Pandas Dataframe
How To Convert Python Dictionary To JSON?
Check if element exists in list in Python
Python | Get unique values from a list
Python | datetime.timedelta() function