Qual è il modo più efficiente per calcolare la media ponderata in base al tempo di un TimeSeries in Pandas 0.8? Ad esempio, dire che voglio la media ponderata nel tempo di df.y - df.x
come creato di seguito:Media ponderata nel tempo 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)
mi sento come questa operazione dovrebbe essere molto facile da fare, ma tutto quello che ho provato coinvolge diverse conversioni di tipo disordinato e lento.
Grazie! Voglio pesare i valori in base alla durata, quindi ho usato 'np.average ((df.y - df.x) [: - 1], weights = np.diff (df.index.asi8))' – user2303