pandas cum系列函数
2020-05-28 本文已影响0人
橘猫吃不胖
cum系列函数,都表示累计的意思,包括
- cummax
- cummin
- cumsum
- cumprod
这四个函数很相似,参数什么的基本一致
pandas.DataFrame.cummax
DataFrame.cummax(self, axis=None, skipna=True, *args, **kwargs)
Return cumulative maximum over a DataFrame or Series axis.
就是求一个累计的最大值,类似SQL中的max over()这种开窗函数
小栗子
s = pd.Series([2, np.nan, 5, -1, 0])

s.cummax()

就是按照某个轴,以此选取其中最大的一个值
索引为1的是NaN,是因为本身元素值就是NaN,默认其实是跳过NaN值的
df = pd.DataFrame([[2.0, 1.0],
[3.0, np.nan],
[1.0, 0.0]],
columns=list('AB'))
df.cummax()

默认是按照index来,也就是竖着来,一行一行
我们可以修改为axis=1
df.cummax(axis=1)

pandas.DataFrame.cummin
同上,这个就是取最小值的
DataFrame.cummin(self, axis=None, skipna=True, *args, **kwargs)
df.cummin()

因为默认是跳过NaN的,所以,注意最大值、最小值都是NaN
df.cummin(skipna=False)

pandas.DataFrame.cumsum
DataFrame.cumsum(self, axis=None, skipna=True, *args, **kwargs)
这个就是累计求和的函数,sum over()
df.cumsum()

pandas.DataFrame.cumprod
DataFrame.cumprod(self, axis=None, skipna=True, *args, **kwargs)
累计求乘积
df.cumprod()
