Pandas入门之十一:窗口函数

已信任
Jupyter 服务器: 本地
Python 3: Not Started
[1]



import pandas as pd
import numpy as np



[3]




df = pd.DataFrame(np.random.randn(10,4))
df
0    1    2    3
0    -0.167745    1.388318    -0.045825    -0.383229
1    -0.867401    -0.497960    -0.525743    -0.111150
2    0.324680    0.271732    -0.342777    1.453611
3    0.172405    -0.044844    1.191591    -0.599321
4    -1.949989    2.652536    0.512927    -0.021361
5    -0.210365    0.725848    -0.630876    0.911816
6    -1.794296    0.119304    -0.453249    0.765076
7    1.290630    -0.642162    0.131960    -0.822012
8    -0.852863    0.842078    0.921524    -0.739347
9    -1.062502    -0.123790    1.387979    1.342889
[5]



# 算出连续3天的平均数,以3为单位进行滑窗
df.rolling(window=3).mean()
0    1    2    3
0    NaN    NaN    NaN    NaN
1    NaN    NaN    NaN    NaN
2    -0.236822    0.387363    -0.304782    0.319744
3    -0.123438    -0.090357    0.107690    0.247713
4    -0.484301    0.959808    0.453913    0.277643
5    -0.662650    1.111180    0.357881    0.097045
6    -1.318217    1.165896    -0.190400    0.551844
7    -0.238010    0.067663    -0.317388    0.284960
8    -0.452176    0.106407    0.200078    -0.265428
9    -0.208245    0.025376    0.813821    -0.072823
[7]



# expanding累加计算平均:先计算1-3的均值,再计算1-4的均值,。。。通过累加计算均值,变化幅度不会太大
df.expanding(min_periods=3).mean()
0    1    2    3
0    NaN    NaN    NaN    NaN
1    NaN    NaN    NaN    NaN
2    -0.236822    0.387363    -0.304782    0.319744
3    -0.134515    0.279312    0.069311    0.089977
4    -0.497610    0.753956    0.158034    0.067710
5    -0.449736    0.749272    0.026549    0.208394
6    -0.641816    0.659276    -0.041993    0.287920
7    -0.400260    0.496597    -0.020249    0.149179
8    -0.450549    0.534983    0.084392    0.050454
9    -0.511744    0.469106    0.214751    0.179697
[-]

 

posted @ 2021-07-14 21:33  vv_869  阅读(157)  评论(0编辑  收藏  举报