已信任
Jupyter 服务器: 本地
Python 3: Not Started
[1]
import pandas as pd
import numpy as np
[6]
df = pd.DataFrame(np.random.randn(10,4), index=pd.date_range('20210714',periods=10),columns=['A','B','C','D'])
df
A B C D
2021-07-14 0.059959 0.362997 -0.448651 -0.769695
2021-07-15 -1.877178 -1.039655 -0.626739 0.496913
2021-07-16 -0.180297 0.076142 0.204801 -1.294938
2021-07-17 -0.134805 -0.520249 -0.090241 0.077699
2021-07-18 1.923701 1.251582 1.056877 1.729408
2021-07-19 0.380681 -0.306409 0.144310 -0.454758
2021-07-20 -0.555998 1.655773 0.685202 0.327272
2021-07-21 1.602570 0.307256 -0.327326 0.007158
2021-07-22 0.475824 -0.364292 0.054033 -0.933068
2021-07-23 1.714851 0.889403 0.003356 0.008544
[7]
df.rolling(window=3).aggregate(np.sum)# 使聚合到一起的3条数据,求和
A B C D
2021-07-14 NaN NaN NaN NaN
2021-07-15 NaN NaN NaN NaN
2021-07-16 -1.997517 -0.600516 -0.870589 -1.567720
2021-07-17 -2.192281 -1.483762 -0.512178 -0.720326
2021-07-18 1.608598 0.807474 1.171438 0.512169
2021-07-19 2.169577 0.424924 1.110947 1.352348
2021-07-20 1.748385 2.600946 1.886390 1.601921
2021-07-21 1.427254 1.656620 0.502186 -0.120328
2021-07-22 1.522396 1.598737 0.411909 -0.598638
2021-07-23 3.793245 0.832366 -0.269937 -0.917366
[8]
r = df.rolling(window=3)
r[['A','B']].aggregate(np.max)
A B
2021-07-14 NaN NaN
2021-07-15 NaN NaN
2021-07-16 0.059959 0.362997
2021-07-17 -0.134805 0.076142
2021-07-18 1.923701 1.251582
2021-07-19 1.923701 1.251582
2021-07-20 1.923701 1.655773
2021-07-21 1.602570 1.655773
2021-07-22 1.602570 1.655773
2021-07-23 1.714851 0.889403
[9]
r[['A','B']].aggregate([np.max,np.min])
A B
amax amin amax amin
2021-07-14 NaN NaN NaN NaN
2021-07-15 NaN NaN NaN NaN
2021-07-16 0.059959 -1.877178 0.362997 -1.039655
2021-07-17 -0.134805 -1.877178 0.076142 -1.039655
2021-07-18 1.923701 -0.180297 1.251582 -0.520249
2021-07-19 1.923701 -0.134805 1.251582 -0.520249
2021-07-20 1.923701 -0.555998 1.655773 -0.306409
2021-07-21 1.602570 -0.555998 1.655773 -0.306409
2021-07-22 1.602570 -0.555998 1.655773 -0.364292
2021-07-23 1.714851 0.475824 0.889403 -0.364292
[10]
r['A','B'].aggregate({'A':np.min,'B':np.max})# 分别使用聚合函数
A B
2021-07-14 NaN NaN
2021-07-15 NaN NaN
2021-07-16 -1.877178 0.362997
2021-07-17 -1.877178 0.076142
2021-07-18 -0.180297 1.251582
2021-07-19 -0.134805 1.251582
2021-07-20 -0.555998 1.655773
2021-07-21 -0.555998 1.655773
2021-07-22 -0.555998 1.655773
2021-07-23 0.475824 0.889403
[-]