Pandas: Calculate moving average within group

Given a pandas dataframe, we have to calculate moving average within group.
Submitted by Pranit Sharma, on November 14, 2022

Pandas is a special tool that allows us to perform complex manipulations of data effectively and efficiently. Inside pandas, we mostly deal with a dataset in the form of DataFrame. DataFrames are 2-dimensional data structures in pandas. DataFrames consist of rows, columns, and data.

Calculating moving average within group

We are given a DataFrame containing time series for multiple objects, we need to calculate the moving average with a window size of 10 for a specific column.

For this purpose, we will first use the groupby function on the required columns and apply the transform function on the object resulting from groupby and inside this transform, we will use the rolling mean method.

The groupby() is a simple but very useful concept in pandas. By using groupby, we can create a grouping of certain values and perform some operations on those values.

The groupby() method splits the object, applies some operations, and then combines them to create a group hence large amounts of data and computations can be performed on these groups.

Let us understand with the help of an example,

Python code to calculate moving average within group

# Importing pandas package
import pandas as pd

# Importing numpy package
import numpy as np

# Creating a Dictionary
d = {
    'A':[1,1,1,1,2,2,3,3],
    'B':[1,2,1,2,100,1,20,20],
    'C':[10,20,10,20,30,30,40,50]
}

# Creating DataFrame
df = pd.DataFrame(d)

# Display dataframe
print('Original DataFrame:\n',df,'\n')

# finding moving mean for window of 4
df['moving'] = df.groupby('A')['C'].transform(lambda x: x.rolling(4, 1).mean())

# Display new DataFrame
print("New DataFrame:\n",df,"\n")

Output:

Example: Calculate moving average within group

Python Pandas Programs »



ADVERTISEMENT
ADVERTISEMENT




Comments and Discussions!




Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.