user3430345 user3430345 - 2 months ago 13
Python Question

Compute the running max for a dataframe in pandas

Given:

d = {
'High': [954,
953,
952,
955,
956,
952,
951,
950,
]
}
df = pandas.DataFrame(d)


I want to add another column which is the max at each index from the beginning. For example the desired column would be:

'Max': [954,
954,
954,
955,
956,
956,
956,
956]


I tried with a pandas rolling function but the window cannot be dynamic it seems

Answer

Use cummax

df.High.cummax()

0    954
1    954
2    954
3    955
4    956
5    956
6    956
7    956
Name: High, dtype: int64

df['Max'] = df.High.cummax()
df

enter image description here

Comments