Overview:
- Number of participants so far arrived for a meeting, maximum rainfall over the century, the coldest temperature over decades - they all require computing of cumulative results like Cumulative Sum, Cumulative Maximum and Cumulative Minimum.
- The functions Series.cumsum(), Series.cummax() and Series.cummin() of the pandas.Series class allow performing these cumulative operations on a pandas Series. The two-dimensional collection pandas.DataFrame also supports cumulative operations.
Calculating cumulative sum of a pandas.Series:
- How many students have arrived so far, what is the current water level in a dam are some of the examples for cumulative sum.
- As events occur over a period of time, cumulative sum gets incremented or decremented based on the nature of events.
- When two students enter into the class, they add to the cumulative student count. In the similar way, when the water is released at a rate greater the incoming rate, the water level at the dam recedes.
- The function Series.cumsum() computes the cumulative sum of the elements present in a pandas Series instance.
Example:
# Python example program to compute the cumulative sum of # a pandas.Series instance import pandas as pds
# Forex inflow and outflow of a central bank in billions of US Dollars forexReserves = [430, -20, -145, 500, -440]; forexSeries = pds.Series(forexReserves); cumulativeReserves = forexSeries.cumsum();
print("Cumulative forex reserves in billions of US Dollars:"); print(cumulativeReserves); |
Output:
Cumulative forex reserves in billions of US Dollars: 0 430 1 410 2 265 3 765 4 325 dtype: int64 |
Calculating cumulative maximum of a pandas.Series:
- The data structure pandas.Series is designed to store lengthy time series data as well as to perform computations on them.
- The Series.cummax() finds the cumulative maximum of the elements present in a pandas.Series object.
- The Python example code calculates the cumulative maximum of a city’s rainfall over a week.
Example:
# Example Python program to find the cumulative maximum # for the elements present in pandas.Series import pandas as pds
# Rainfall data in inches rainFall = [0.04, 0.0, 0.03, 0.17, 0.24];
# Create a pandas Series rainSeries = pds.Series(rainFall);
# Find the cumulative maximum rainfall cumMaxRain = rainSeries.cummax();
print("Daily rainfall:"); print(rainSeries);
print("Cumulative maximum rainfall over the week:"); print(cumMaxRain); |
Output:
Daily rainfall: 0 0.04 1 0.00 2 0.03 3 0.17 4 0.24 dtype: float64 Cumulative maximum rainfall over the week: 0 0.04 1 0.04 2 0.04 3 0.17 4 0.24 dtype: float64
|
Calculating cumulative minimum of a pandas.series:
- Series.cummin() function, finds the cumulative minimum for a pandas.Series().
- The Python example finds the cumulative minimum for a city’s rainfall data over a period of one week.
Example:
# Example Python program to find the cumulative minimum # for the elements present in pandas.Series import pandas as pds
# Python list containing temperature history of a city for seven days cityTemp = [74,75,72,73,71,70];
# Create pandas series from the Pythonlist tempSeries = pds.Series(cityTemp);
# Find the cumulative minimum temperature cumMinTemp = tempSeries.cummin();
print("Daily temperature:"); print(tempSeries);
print("Cumulative minimum temperature over the week:"); print(cumMinTemp); |
Output:
Daily temperature: 0 74 1 75 2 72 3 73 4 71 5 70 dtype: int64 Cumulative minimum temperature over the week: 0 74 1 74 2 72 3 72 4 71 5 70 dtype: int64
|
Calculating cumulative product of a pandas.series:
-
Using the Series.cumprod() cumulative product of a pandas.Series can be calculated.
Example:
# Python example program to calculate the cumulative product # of a pandas.series import pandas as pds
# Create a pandas series series = pds.Series([10, 20, 30, 40, 50, 60, 70]);
# Compute the cumulative product of the series cumulativeProduct = series.cumprod(); print("Contents of the pandas series instance:"); print(series);
print("Cumulative product of the series:"); print(cumulativeProduct); |
Output:
Contents of the pandas series instance: 0 10 1 20 2 30 3 40 4 50 5 60 6 70 dtype: int64 Cumulative product of the series: 0 10 1 200 2 6000 3 240000 4 12000000 5 720000000 6 50400000000 dtype: int64 |