Python | Pandas series.cummax() to find Cumulative maximum of a series

Python is a great language for doing data analysis, primarily because of the fantastic ecosystem of data-centric Python packages. Pandas is one of those packages and makes importing and analyzing data much easier.

Pandas Series.cummax() is used to find Cumulative maximum of a series. In cumulative maximum, the length of returned series is same as input series and every element is equal to the greater one between current element and previous element.

Syntax: Series.cummax(axis=None, skipna=True)



Parameters:
axis: 0 or ‘index’ for row wise operation and 1 or ‘columns’ for column wise operation.
skipna: Skips NaN addition for elements after the very next one if True.

Return type: Series

Example #1:
In this example, a series is created from a Python list. The list also contains a Null value and the skipna parameter is kept default, that is True.

filter_none

edit
close

play_arrow

link
brightness_4
code

# importing pandas module 
import pandas as pd 
    
# importing numpy module 
import numpy as np 
    
# making list of values 
values = [3, 4, np.nan, 7, 2, 0
    
# making series from list 
series = pd.Series(values) 
    
# calling method 
cummax = series.cummax() 
    
# display 
cummax

chevron_right


Output:

0    3.0
1    4.0
2    NaN
3    7.0
4    7.0
5    7.0
dtype: float64

Explanation: Cummax is comparison of current value with previous value. The first element is always equal to first of caller series.

3
4  (4>3)
NaN (Since NaN cannot be compared to integer values)
7  (7>4)
7  (7>2)
7  (7>0)

 
Example #2: Keeping skipna = False

In this example, a series is created just like in the above example. But the skipna parameter is kept False. Hence NULL values won’t be ignored and it would be compared every time on it’s occurrence.

filter_none

edit
close

play_arrow

link
brightness_4
code

# importing pandas module 
import pandas as pd 
    
# importing numpy module 
import numpy as np 
    
# making list of values 
values = [9, 4, 33, np.nan, 0, 1, 76, 5
    
# making series from list 
series = pd.Series(values) 
    
# calling method 
cummax = series.cummax(skipna = False
    
# display 
cummax 

chevron_right


Output:

0     9.0
1     9.0
2    33.0
3     NaN
4     NaN
5     NaN
6     NaN
7     NaN
dtype: float64

Explanation: Just like in the above example, maximum of current and previous values were stored at every position until NaN occurred. Since NaN compared with anything returns NaN and skipna parameter is kept False, the cumulative maximum after its occurrence is NaN due to comparison of all the values with NaN.



My Personal Notes arrow_drop_up

Developer in day, Designer at night GSoC 2019 with Python Software Foundation (EOS Design system)

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.