У меня есть кадр данных, из которого я оцениваю 10-летние скользящие средние различных видов с синтаксисом скользящего стиля старого стиля:
`pandas.rolling_mean(df['x'], 10)`,
`pandas.rolling_median(df['x'], 10)`
а также
`pandas.rolling_apply(df['x'],10, hodgesLehmanMean)`,
где hodgesLehman означает функцию, которую я написал (см. ниже).
def hodgesLehmanMean(x):
#Computes the Hodges-Lehman mean = median { [x_i + x+j]/2 }.
#Robust to 29% outliers, with high (95% efficiency) in the gaussian case
N = len(x)
return 0.5 * numpy.median(x[i] + x[j] for i in range(N) for j in range(i+1,N))
`
Теперь, когда старые функции прокатки устарели, я пытаюсь переписать свой код в новом стиле series.rolling(), то есть:
`df['x'].rolling(window=10).mean()`,
`df['x'].rolling(window=10).median()`
and
`df['x'].rolling(window=10).hodgesLehmanMean()`.
Первые два (среднее и медиана) работают как часы. Третий (hodgesLehmanMean) не работает - поднимает AttributeError: 'Rolling' object has no attribute 'hodgesLehmanMean
Как я могу заставить свою функцию работать с новым синтаксисом series.rolling?