Pandas DataFrame.rolling: Rolling Window Calculations on a DataFrame


Pandas DataFrame.rolling

The DataFrame.rolling method in pandas is used to perform rolling window calculations on a DataFrame. It allows you to apply operations (e.g., mean, sum, etc.) over a sliding window of rows or columns.


Syntax

The syntax for DataFrame.rolling is:

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None, step=None, method='single')

Here, DataFrame refers to the pandas DataFrame on which the rolling window calculations are performed.


Parameters

ParameterDescription
windowSpecifies the size of the moving window. This can be an integer (fixed window size) or an offset (variable window size based on time).
min_periodsSpecifies the minimum number of observations in the window required to have a value. Defaults to the window size.
centerIf True, the window is centered on the current observation. Defaults to False.
win_typeSpecifies the type of window (e.g., 'triang', 'blackman', etc.). Defaults to None (uniform weights).
onSpecifies the column to use for rolling calculations when the DataFrame is indexed by time.
axisSpecifies the axis along which the rolling window is applied. Use 0 or 'index' for rows, and 1 or 'columns' for columns. Defaults to 0.
closedSpecifies whether the window is closed on the left, right, both, or neither. Options include 'right', 'left', 'both', or 'neither'. Defaults to None.
stepSpecifies the step size for the rolling window. Defaults to None.
methodSpecifies the method for handling overlapping windows. Options include 'single' or 'table'. Defaults to 'single'.

Returns

A Rolling object, which can be used to apply aggregation or transformation operations over the rolling window.


Examples

Rolling Mean Calculation on a DataFrame

This example demonstrates how to use rolling to calculate the rolling mean of a DataFrame column with a window size of 3.

Python Program

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'Values': [1, 2, 3, 4, 5, 6, 7, 8, 9]})

# Calculate the rolling mean with a window size of 3
result = df['Values'].rolling(window=3).mean()
print(result)

Output

0    NaN
1    NaN
2    2.0
3    3.0
4    4.0
5    5.0
6    6.0
7    7.0
8    8.0
Name: Values, dtype: float64

Rolling Sum Calculation on a DataFrame

This example shows how to use rolling to calculate the rolling sum of a DataFrame column with a window size of 2.

Python Program

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'Values': [10, 20, 30, 40, 50]})

# Calculate the rolling sum with a window size of 2
result = df['Values'].rolling(window=2).sum()
print(result)

Output

0     NaN
1    30.0
2    50.0
3    70.0
4    90.0
Name: Values, dtype: float64

Rolling Window Calculation with a Time-Based Offset

This example demonstrates how to use rolling with a time-based offset to calculate the rolling mean of a DataFrame indexed by dates.

Python Program

import pandas as pd

# Create a DataFrame with a date index
dates = pd.date_range('2023-01-01', periods=5, freq='D')
df = pd.DataFrame({'Values': [1, 2, 3, 4, 5]}, index=dates)

# Calculate the rolling mean with a 2-day window
result = df['Values'].rolling(window='2D').mean()
print(result)

Output

2023-01-01    1.0
2023-01-02    1.5
2023-01-03    2.5
2023-01-04    3.5
2023-01-05    4.5
Freq: D, Name: Values, dtype: float64

Rolling Window Calculation with Custom Window Type

This example shows how to use rolling with a custom window type (e.g., triangular window) to calculate the rolling weighted mean of a DataFrame column.

Python Program

import pandas as pd

# Create a DataFrame
df = pd.DataFrame({'Values': [1, 2, 3, 4, 5, 6, 7, 8, 9]})

# Calculate the rolling weighted mean with a triangular window
result = df['Values'].rolling(window=3, win_type='triang').mean()
print(result)

Output

0    NaN
1    NaN
2    2.0
3    3.0
4    4.0
5    5.0
6    6.0
7    7.0
8    8.0
Name: Values, dtype: float64

Summary

In this tutorial, we explored the DataFrame.rolling method in pandas. Key takeaways include:

  • Using rolling to perform rolling window calculations on a DataFrame.
  • Applying aggregation functions (e.g., mean, sum) over a sliding window.
  • Using time-based offsets and custom window types for advanced rolling calculations.
  • Understanding the parameters of rolling, such as window, min_periods, and win_type.

Python Libraries