[PYTHON] pandas rééchantillonner et rouler

introduction

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.

référence

resample

Corps de fonction

DataFrame.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
)

Fonction ultérieure

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

rolling

Corps de fonction

DataFrame.rolling(
    window,
    min_periods=None,
    freq=None,
    center=False,
    win_type=None,
    on=None,
    axis=0,
    closed=None
)

Fonction ultérieure

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

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

pandas rééchantillonner et rouler
installation de jupyter et pandas
index et réindexation des pandas
Moyenne et liste des pandas
Ajouts clés aux pandas 1.1.0 et 1.0.0
Comment utiliser Pandas Rolling
Comportement de la méthode pandas rolling ()
Pandas
Précautions lors de l'utilisation de codecs et de pandas
[Pandas] Trouvez le quadrant et détectez la valeur aberrante
Ignorer # ligne et lire avec les pandas
[Python] Qu'est-ce que la série pandas et DataFrame?
Un petit examen minutieux de Pandas 1.0 et Dask
[pandas] Méthode de lecture et d'affichage des fichiers .csv
Regrouper CSV et obtenir la valeur minimale (pandas)
Chargez CSV avec des pandas et jouez avec Index
Comment utiliser les pandas Timestamp et date_range
Lisez CSV et analysez avec Pandas et Seaborn