3.1 C
London
Friday, December 20, 2024
HomeSoftware TutorialsPythonHow to Calculate a Cumulative Average in Python

How to Calculate a Cumulative Average in Python

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

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

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories