Pandas教學
Pandas環境安裝配置
Pandas數據結構
Pandas快速入門
Pandas系列
Pandas數據幀(DataFrame)
Pandas面板(Panel)
Pandas基本功能
Pandas描述性統計
Pandas函數應用
Pandas重建索引
Pandas迭代
Pandas排序
Pandas字符串和文本數據
Pandas選項和自定義
Pandas索引和選擇數據
Pandas統計函數
Pandas窗口函數
Pandas聚合
Pandas缺失數據
Pandas分組(GroupBy)
Pandas合併/連接
Pandas級聯
Pandas日期功能
Pandas時間差(Timedelta)
Pandas分類數據
Pandas可視化
Pandas IO工具
Pandas稀疏數據
Pandas注意事項&竅門
Pandas與SQL比較
Pandas窗口函數
爲了處理數字數據,Pandas提供了幾個變體,如滾動,展開和指數移動窗口統計的權重。 其中包括總和,均值,中位數,方差,協方差,相關性等。
下來學習如何在DataFrame對象上應用上提及的每種方法。
.rolling()函數
這個函數可以應用於一系列數據。指定window=n
參數並在其上應用適當的統計函數。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2020', periods=10),
columns = ['A', 'B', 'C', 'D'])
print (df.rolling(window=3).mean())
執行上面示例代碼,得到以下結果 -
A B C D
2020-01-01 NaN NaN NaN NaN
2020-01-02 NaN NaN NaN NaN
2020-01-03 -0.306293 0.214001 -0.076004 -0.200793
2020-01-04 0.236632 -0.437033 0.046111 -0.252062
2020-01-05 0.761818 -0.181635 -0.546929 -0.738482
2020-01-06 1.306498 -0.411834 -0.680948 -0.070285
2020-01-07 0.956877 -0.749315 -0.503484 0.160620
2020-01-08 0.354319 -1.067165 -1.238036 1.051048
2020-01-09 0.262081 -0.898373 -1.059351 0.342291
2020-01-10 0.326801 -0.350519 -1.064437 0.749869
注 - 由於窗口大小爲
3
(window
),前兩個元素有空值,第三個元素的值將是n
,n-1
和n-2
元素的平均值。這樣也可以應用上面提到的各種函數了。
.expanding()函數
這個函數可以應用於一系列數據。 指定min_periods = n
參數並在其上應用適當的統計函數。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2018', periods=10),
columns = ['A', 'B', 'C', 'D'])
print (df.expanding(min_periods=3).mean())
執行上面示例代碼得到以下結果 -
A B C D
2018-01-01 NaN NaN NaN NaN
2018-01-02 NaN NaN NaN NaN
2018-01-03 -0.425085 -0.124270 -0.324134 -0.234001
2018-01-04 -0.293824 -0.038188 -0.172855 0.447226
2018-01-05 -0.516146 -0.013441 -0.384935 0.379267
2018-01-06 -0.614905 0.290308 -0.594635 0.414396
2018-01-07 -0.606090 0.121265 -0.604148 0.246296
2018-01-08 -0.597291 0.075374 -0.425182 0.092831
2018-01-09 -0.380505 0.074956 -0.253081 0.146426
2018-01-10 -0.235030 0.018936 -0.259566 0.315200
.ewm()函數
ewm()
可應用於系列數據。指定com
,span
,halflife
參數,並在其上應用適當的統計函數。它以指數形式分配權重。
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 4),
index = pd.date_range('1/1/2019', periods=10),
columns = ['A', 'B', 'C', 'D'])
print (df.ewm(com=0.5).mean())
執行上面示例函數,得到以下結果 -
A B C D
2019-01-01 1.047165 0.777385 -1.286948 -0.080564
2019-01-02 0.484093 -0.630998 -0.975172 -0.117832
2019-01-03 0.056189 0.830492 0.116325 1.005547
2019-01-04 -0.363824 1.222173 0.497901 -0.235209
2019-01-05 -0.260685 1.066029 0.391480 1.196190
2019-01-06 0.389649 1.458152 -0.231936 -0.481003
2019-01-07 1.071035 -0.016003 0.387420 -0.170811
2019-01-08 -0.573686 1.052081 1.218439 0.829366
2019-01-09 0.222927 0.556430 0.811838 -0.562096
2019-01-10 0.224624 -1.225446 0.204961 -0.800444
窗口函數主要用於通過平滑曲線來以圖形方式查找數據內的趨勢。如果日常數據中有很多變化,並且有很多數據點可用,那麼採樣和繪圖就是一種方法,應用窗口計算並在結果上繪製圖形是另一種方法。 通過這些方法,可以平滑曲線或趨勢。