已信任 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 [-]