A cumulative average tells us the average of a series of values up to a certain point.
You can use the following syntax to calculate the cumulative average of values in a column of a pandas DataFrame:
df['column_name'].expanding().mean()
The following example shows how to use this syntax in practice.
Example: Calculate Cumulative Average in Python
Suppose we have the following pandas DataFrame that shows the total sales made by some store during 16 consecutive days:
import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame({'day': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16], 'sales': [3, 6, 0, 2, 4, 1, 0, 1, 4, 7, 3, 3, 8, 3, 5, 5]}) #view first five rows of DataFrame df.head() day sales 0 1 3 1 2 6 2 3 0 3 4 2 4 5 4
We can use the following syntax to calculate the cumulative average of the sales column:
#calculate average of 'sales' column df['sales'].expanding().mean() 0 3.000000 1 4.500000 2 3.000000 3 2.750000 4 3.000000 5 2.666667 6 2.285714 7 2.125000 8 2.333333 9 2.800000 10 2.818182 11 2.833333 12 3.230769 13 3.214286 14 3.333333 15 3.437500 Name: sales, dtype: float64
We would interpret the cumulative average values as:
- The cumulative average of the first sales value is 3.
- The cumulative average of the first two sales values is 4.5.
- The cumulative average of the first three sales values is 3.
- The cumulative average of the first four sales values is 2.75.
And so on.
Note that you can also use the following code to add the cumulative average sales values as a new column in the DataFrame:
#add cumulative average sales as new column df['cum_avg_sales'] = df['sales'].expanding().mean() #view updated DataFrame df day sales cum_avg_sales 0 1 3 3.000000 1 2 6 4.500000 2 3 0 3.000000 3 4 2 2.750000 4 5 4 3.000000 5 6 1 2.666667 6 7 0 2.285714 7 8 1 2.125000 8 9 4 2.333333 9 10 7 2.800000 10 11 3 2.818182 11 12 3 2.833333 12 13 8 3.230769 13 14 3 3.214286 14 15 5 3.333333 15 16 5 3.437500
The cum_avg_sales column shows the cumulative average of the values in the “sales” column.
Additional Resources
The following tutorials explain how to calculate other common metrics in Python:
How to Calculate a Trimmed Mean in Python
How to Calculate Geometric Mean in Python
How to Calculate Moving Averages in Python