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