pandas
窗口计算
看过来
《pandas 教程》 持续更新中,可作为 pandas 入门进阶课程、pandas 中文手册、用法大全,配有案例讲解和速查手册。提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。查看更新日志。作者开办 Python 数据分析训练营正在报名中,详情 Python 数据分析训练营。
![]() |
本教程作者所著新书《Python之光:Python编程入门与实战》(ISBN:9787111729891)已由机械工业出版社出版上市,各大电商平台有售,欢迎:查看详情并关注购买。 |
![]() |
本教程作者所著新书《深入浅出Pandas:利用Python进行数据处理与分析》(ISBN:9787111685456)已由机械工业出版社出版上市,各大电商平台有售,欢迎:查看详情并关注购买。 |
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() 等。
参考:
- todo: https://pandas.pydata.org/docs/user_guide/groupby.html#window-and-resample-operations
- https://geek-docs.com/pandas/pandas-tutorials/pandas-window-function.html
无「盖若」授权,请勿以任何形式转载,公众号:gairuo
Copyright © 2019 - 2023
Gairuo.com All Rights Reserved v7.6.1.0919
京公网安备11010502033395号
京ICP备15019454号-4