English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Exemple d'opération de fonction fenêtre Pandas
Pour traiter les données numériques, Pandas fournit plusieurs variantes, telles que le roulement, l'extension et le déplacement exponentiel des pondérations pour les statistiques de fenêtre. Cela inclut la somme, la moyenne, la médiane, la variance, la covariance, la corrélation, etc.
Maintenant, nous allons apprendre à les appliquer respectivement aux objets DataFrame.
Cette fonction peut être appliquée à une série de données. Spécifiez le paramètre window = n et appliquez-y la fonction statistique appropriée.
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(10, 4), index=pd.date_range('1/1/2000', periods=10), columns=['A', 'B', 'C', 'D']) print(df.rolling(window=3).mean())
运行结果如下:
A B C D 2000-01-01 NaN NaN NaN NaN 2000-01-02 NaN NaN NaN NaN 2000-01-03 0.434553 -0.667940 -1.051718 -0.826452 2000-01-04 0.628267 -0.047040 -0.287467 -0.161110 2000-01-05 0.398233 0.003517 0.099126 -0.405565 2000-01-06 0.641798 0.656184 -0.322728 0.428015 2000-01-07 0.188403 0.010913 -0.708645 0.160932 2000-01-08 0.188043 -0.253039 -0.818125 -0.108485 2000-01-09 0.682819 -0.606846 -0.178411 -0.404127 2000-01-10 0.688583 0.127786 0.513832 -1.067156
En raison de la taille de la fenêtre de3Par conséquent, pour les deux premiers éléments vides, à partir du troisième élément, la valeur est n, n-1et n-2La moyenne des éléments. Par conséquent, nous pouvons également appliquer les fonctions ci-dessus.
Cette fonction peut être appliquée à une série de données. Spécifiez le paramètre min_periods = n et appliquez-y la fonction statistique appropriée.
import pandas as pd import numpy as np df=pd.DataFrame(np.random.randn(10, 4), index=pd.date_range('1/1/2000', periods=10), columns=['A', 'B', 'C', 'D']) print(df.expanding(min_periods=3).mean())
运行结果如下:
A B C D 2000-01-01 NaN NaN NaN NaN 2000-01-02 NaN NaN NaN NaN 2000-01-03 0.434553 -0.667940 -1.051718 -0.826452 2000-01-04 0.743328 -0.198015 -0.852462 -0.262547 2000-01-05 0.614776 -0.205649 -0.583641 -0.303254 2000-01-06 0.538175 -0.005878 -0.687223 -0.199219 2000-01-07 0.505503 -0.108475 -0.790826 -0.081056 2000-01-08 0.454751 -0.223420 -0.671572 -0.230215 2000-01-09 0.586390 -0.206201 -0.517619 -0.267521 2000-01-10 0.560427 -0.037597 -0.399429 -0.376886
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/2000', periods=10), columns=['A', 'B', 'C', 'D']) print(df.ewm(com=0.5).mean())
运行结果如下:
A B C D 2000-01-01 1.088512 -0.650942 -2.547450 -0.566858 2000-01-02 0.865131 -0.453626 -1.137961 0.058747 2000-01-03 -0.132245 -0.807671 -0.308308 -1.491002 2000-01-04 1.084036 0.555444 -0.272119 0.480111 2000-01-05 0.425682 0.025511 0.239162 -0.153290 2000-01-06 0.245094 0.671373 -0.725025 0.163310 2000-01-07 0.288030 -0.259337 -1.183515 0.473191 2000-01-08 0.162317 -0.771884 -0.285564 -0.692001 2000-01-09 1.147156 -0.302900 0.380851 -0.607976 2000-01-10 0.600216 0.885614 0.569808 -1.110113
窗口函数主要用于通过平滑曲线以图形方式在数据中查找趋势。如果日常数据变化很大,并且有许多数据点可用,则采用样本和绘图是一种方法,应用窗口计算并在结果上绘图是另一种方法。通过这些方法,我们可以平滑曲线或趋势。