Rolling mean and sum help you see trends by averaging or adding values over a moving window of data points.
Rolling mean and sum in Pandas
df['column_name'].rolling(window=n).mean() df['column_name'].rolling(window=n).sum()
window=n sets how many data points to include in each calculation.
Rolling calculations move one step at a time over the data.
df['sales'].rolling(window=3).mean()
df['temperature'].rolling(window=5).sum()
df['price'].rolling(window=4).mean()
This code creates a simple sales dataset and calculates the rolling mean and sum over a window of 3 days. It prints both results so you can see how the values change as the window moves.
import pandas as pd data = {'day': [1, 2, 3, 4, 5, 6], 'sales': [10, 20, 30, 40, 50, 60]} df = pd.DataFrame(data) # Calculate rolling mean with window 3 rolling_mean = df['sales'].rolling(window=3).mean() # Calculate rolling sum with window 3 rolling_sum = df['sales'].rolling(window=3).sum() print('Rolling Mean (window=3):') print(rolling_mean) print('\nRolling Sum (window=3):') print(rolling_sum)
The first few results are NaN because there are not enough data points to fill the window.
You can change the window size to include more or fewer data points.
Rolling mean and sum calculate averages or totals over a moving window.
They help smooth data and reveal trends over time.
Use rolling(window=n) with .mean() or .sum() on pandas columns.
Practice
rolling(window=3).mean() function do on a pandas Series?Solution
Step 1: Understand rolling window size
The window=3 means we look at 3 values at a time: the current and previous 2.Step 2: Apply mean function on each window
For each position, the mean is calculated over these 3 values, smoothing the data.Final Answer:
Calculates the average of the current and previous 2 values for each position. -> Option AQuick Check:
Rolling mean = average over window [OK]
- Thinking it sums all values, not just window
- Confusing mean with difference
- Assuming it sorts data
'sales'?Solution
Step 1: Identify correct method chaining
In pandas, rolling is called on the Series, then sum() is applied.Step 2: Check syntax correctness
df['sales'].rolling(4).sum() correctly uses df['sales'].rolling(4).sum() which is valid syntax.Final Answer:
df['sales'].rolling(4).sum() -> Option CQuick Check:
Correct rolling sum syntax = df['sales'].rolling(4).sum() [OK]
- Passing column name as string to rolling()
- Calling sum() before rolling()
- Using undefined rolling() function
data = pd.Series([2, 4, 6, 8, 10]), what is the output of data.rolling(window=3).sum()?Solution
Step 1: Understand rolling sum with window=3
For the first two positions, there are not enough values to fill the window, so result is NaN.Step 2: Calculate sums for positions 3 to 5
Position 3 sum: 2+4+6=12, position 4 sum: 4+6+8=18, position 5 sum: 6+8+10=24.Final Answer:
[NaN, NaN, 12, 18, 24] -> Option DQuick Check:
Rolling sum with window=3 pads start with NaN [OK]
- Expecting sums from first element
- Confusing rolling sum with cumulative sum
- Ignoring NaN for incomplete windows
'temp' with window 2?df = pd.DataFrame({'temp': [10, 20, 30]})
df['rolling_mean'] = df.rolling(2).mean()['temp']Solution
Step 1: Analyze the code execution
df.rolling(2).mean() applies the rolling mean to the 'temp' column, producing a DataFrame with values [NaN, 15.0, 25.0].Step 2: Column access and assignment
df.rolling(2).mean()['temp'] extracts the Series correctly, and assignment to df['rolling_mean'] succeeds without errors.Final Answer:
The code is correct and will run without errors. -> Option AQuick Check:
df.rolling(2).mean()['temp'] works for column rolling mean [OK]
- Believing rolling() must only be called on Series
- Thinking window size must be 3 or more
- Assuming mean() cannot be used after rolling()
df with column 'sales'. You want to create a new column 'weekly_avg' that shows the average sales over the last 7 days, but only if at least 5 days of data are available in the window. Which code correctly achieves this?Solution
Step 1: Understand rolling with min_periods
min_periods=5 means the rolling function will compute mean only if at least 5 values exist in the window.Step 2: Check correct syntax for rolling mean with conditions
df['weekly_avg'] = df['sales'].rolling(window=7, min_periods=5).mean() correctly uses rolling(window=7, min_periods=5).mean() to get average over 7 days with minimum 5 days data.Final Answer:
df['weekly_avg'] = df['sales'].rolling(window=7, min_periods=5).mean() -> Option BQuick Check:
Use min_periods to require minimum data in rolling [OK]
- Passing min_periods to mean() instead of rolling()
- Using wrong window size
- Dividing sum by fixed number ignoring data count
Ready to prove it?
Pass the test and this pattern moves unknown
