English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

函数窗口Pandas

Esempi di operazioni delle funzioni di finestra Pandas

Per gestire i dati numerici, Pandas fornisce alcune varianti, come rolling, expanding e moving average esponenziale per le statistiche di finestra. Queste includono somma, media, mediana, varianza, covarianza, correlazione, ecc.
Ora, impareremo come applicarle rispettivamente a un oggetto DataFrame.

.rolling() funzione

Questa funzione può essere applicata a una serie di dati. Specificare il parametro window = n e applicare sopra la funzione statistica appropriata.

 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())

Esegui i risultati di seguito:

                  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

Poiché la dimensione della finestra è 3, i primi due elementi sono vuoti e il valore è la media degli elementi n, n-1 e n-2 a partire dal terzo elemento. Pertanto, possiamo anche applicare le varie funzioni menzionate sopra.

.expanding() funzione

Questa funzione può essere applicata a una serie di dati. Specificare il parametro min_periods = n e applicare sopra la funzione statistica appropriata.

 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())

Esegui i risultati di seguito:

                 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

La funzione .ewm()

ewm Applicato a una serie di dati. Specifica uno dei parametri com, span, halflife e applicale la funzione statistica appropriata. Assegna pesi esponenzialmente.

 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())

Esegui i risultati di seguito:

                  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

Le funzioni finestra sono principalmente utilizzate per trovare tendenze nei dati graficamente attraverso curve smorzate. Se i dati quotidiani variano molto e ci sono molti punti di dati disponibili, utilizzare campioni e grafici è un metodo, applicare calcoli finestra e disegnare i risultati è un altro metodo. Attraverso questi metodi, possiamo smorzare curve o tendenze.