Я ничего не знаю о dataframe
, но поскольку это python, то эта строка:
df['momentum'] = df.groupby('symbol')['close'].rolling(momentum_window, min_periods=minimum_momentum).apply(momentum_score).reset_index(level=0, drop=True)
должна быть разбита на несколько строк, создавая ссылки на каждую функцию возврат:
groupby = df.groupby('symbol')['close']
rolling = groupby.rolling(momentum_window, min_periods=minimum_momentum)
apply = rolling.apply(momentum_score)
df['momentum'] = apply.reset_index(level=0, drop=True)