看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas 窗口函数,为了处理数字数据,Pandas 提供几种窗口函数,如移动窗口函数(rolling()),扩展窗口函数(expanding()),指数加权滑动(ewm()),同时可在基基础上调用适合的统计函数,如求和、中位数、均值、协方差、方差、相关性等。
可以把“窗口”(windows)这个理解一个集合,一个窗口就是一个集合,在统计分析中有需要不同的「窗口」,比如一个部门分成不同组,在统计时会按组进行平均、排名等操作。再比如,在一些像时间这种有顺序的数据,我们可能5天分一组、一月分一组再进行排序、求中位数等计算。
rolling(10) 与 groupby 很像,但并没有进行分组,而是创建了一个按移动 10(天)位的滑动窗口对象。我们再对每个对象进行统计操作。
expanding,「扩展」从数据(大多情况下是时间)的起始处开始窗口,增加窗口直到指定的大小。
以下是 Expanding vs. rolling window 图示:
以下是 rolling 动图示例:
以下是 expanding 动图示例:
指数加权函数(Exponential weighted moving),在上述两个统计方法中分组中的所有数值的权重都是一样的,指数加权就是我们对分组中的数据给予不同的权重用于后边的计算中。如指数移动平均(Exponential Moving Average)也叫权重移动平均(Weighted Moving Average),是以指数式递减加权的移动平均,各数值的加权影响力随时间呈指数式递减,时间越靠近当前时刻的数据加权影响力越大。
梯度下降法,就是计算了梯度的指数加权平均数,并以此来更新权重,它的运行速度几乎总是快于标准的梯度下降算法。
滚动对象通过.rolling调用返回:pandas.DataFrame.rolling(),pandas.Series.rolling() 等。扩展对象通过.expanding 调用返回:pandas.DataFrame.expanding(),pandas.Series.expanding() 等。EWM 对象由.ewm调用返回:pandas.DataFrame.ewm(),pandas.Series.ewm() 等。
参考:
更新时间:2020-06-26 01:29:21 标签:pandas 窗口计算