Je vais vérifier les pandas «resample» et «rolling» à chaque fois car ils se ressemblent et ne se ressemblent pas, donc je vais les résumer brièvement.
pandas v0.20.3DataFrame.resample(
    rule,
    how=None,
    axis=0,
    fill_method=None,
    closed=None,
    label=None,
    convention='start',
    kind=None,
    loffset=None,
    limit=None,
    base=0,
    on=None,
    level=None
)
| une fonction | La description | 
|---|---|
| first | La valeur la plus proche du futur | 
| last | La valeur la plus proche de la direction passée | 
| bfill | backward fill,La valeur la plus proche du futur (NaNRemplir) | 
| ffill | forward fill,La valeur la plus proche de la direction passée (NaNRemplir) | 
| count | Nombre de valeurs | 
| unique | Nombre de valeurs uniques | 
| max | Valeur maximum | 
| min | valeur minimum | 
| mean | Valeur moyenne | 
| median | Médian | 
| sum | Valeur totale | 
| var | Distribué | 
| std | écart-type | 
| ohlc | Prix ouvert(opning), Le prix le plus élevé(highest),prix le plus bas(lowest),le dernier prix(closing) | 
| pad | = ffill | 
DataFrame.rolling(
    window,
    min_periods=None,
    freq=None,
    center=False,
    win_type=None,
    on=None,
    axis=0,
    closed=None
)
| une fonction | La description | 
|---|---|
| count | Nombre de valeurs | 
| max | Valeur maximum | 
| min | valeur minimum | 
| sum | Valeur totale | 
| mean | Valeur moyenne | 
| median | Médian | 
| var | Distribué | 
| std | écart-type | 
| cov | Matrice co-distribuée distribuée | 
| corr | Matrice de corrélation | 
| skew | asymétrie(Troisième moment) | 
| kurt | kurtosis(Quatrième moment) | 
| quantile | Valeur de partition | 
| apply | Agrégation par fonction d'origine | 
Vous pouvez faire votre propre agrégation avec rolling (). Apply ()
--Exemple) Filtre FIR, filtre de moyenne mobile
import numpy as np
#Coefficient de filtre
b = np.ones(5) / 5
def f(x):
    #x est un tableau de valeurs dans la fenêtre
    # x[0]Est le plus ancien, x[-1]Est la valeur la plus récente
    #Renvoie la valeur agrégée
    return np.sum(b*x)
#Application
series.rolling(5, center=True).apply(f)
# series.rolling(5, center=True).apply(lambda x : np.sum(b*x))Mais d'accord
        Recommended Posts