¿Cuál es la forma más eficiente de calcular el promedio ponderado de tiempo de una serie de tiempo en Pandas 0.8? Por ejemplo, quiero decir que el promedio ponderado en el tiempo de df.y - df.x
como creados a continuación:Promedio ponderado en el tiempo con Pandas
import pandas
import numpy as np
times = np.datetime64('2012-05-31 14:00') + np.timedelta64(1, 'ms') * np.cumsum(10**3 * np.random.exponential(size=10**6))
x = np.random.normal(size=10**6)
y = np.random.normal(size=10**6)
df = pandas.DataFrame({'x': x, 'y': y}, index=times)
siento que esta operación debe ser muy fácil de hacer, pero todo lo que he intentado implica varias conversiones de tipo desordenado y lento.
¡Gracias! Quiero ponderar los valores por las duraciones de tiempo, así que usé 'np.average ((df.y - df.x) [: - 1], weights = np.diff (df.index.asi8))' – user2303