Я пытаюсь запустить следующий код
def RSI(series, period):
delta = series.diff().dropna()
u = delta * 0
d = u.copy()
u[delta > 0] = delta[delta > 0]
d[delta < 0] = -delta[delta < 0]
u[u.index[period-1]] = np.mean( u[:period] ) #first value is sum of avg gains
u = u.drop(u.index[:(period-1)])
d[d.index[period-1]] = np.mean( d[:period] ) #first value is sum of avg losses
d = d.drop(d.index[:(period-1)])
rs = u.ewm(com=period-1, min_periods = period).mean() / \
d.ewm(com=period-1, min_periods = period).mean()
return 100 - 100 / (1 + rs)
df['RSI'] = df.groupby(['Commodity'], as_index = False).apply(RSI(df, 14)).reset_index(level=0, drop = True)
Я получаю следующую ошибку: «Объекты DataFrame являются изменяемыми, поэтому их нельзя хэшировать».
Однако, когда я использую следующее - это работает:
df['RSI'] = RSI(df['Close'], 14)
Что мне здесь не хватает?Мне нужно вставить Groupby, чтобы заставить это работать правильно.