У меня есть приложение, в котором мне нужно запустить алгоритм для каждого уникального значения столбца разделения (KEY) в df. Срез df хранится в df2. А внутренняя функция (do_cal c) должна выполняться последовательно, так как для вычисления строки i мне нужно использовать предыдущие строки. Однако, чтобы ускорить процесс, алгоритм может быть запущен параллельно для разных значений столбца KEY. Я пытался использовать prange от numba, но это приводило к ошибкам сегментации.
Мне было интересно, есть ли лучший способ ускорить циклы ниже?
import pandas as pd
def do_bcf(x,df):
lam_e = x[0] #smoothing weight for forecast error
lam_a = x[1] #smoothing weight for demand level
lam_s = x[2] #smoothing weight for weekly seasonality
clip_factor = x[3]
key_col = 'KEY'
list_key_cols = df[key_col].unique()
df_calibrate = pd.DataFrame()
for j in list_key_cols:
df2 = df[df[key_col]==j].reset_index()
for i in range(init_period,len(df2)):
df2 = do_calc(df2, i, lam_e, lam_a, lam_s, clip_factor)
df_calibrate = pd.concat([df_calibrate,df2])
return df_calibrate
Заранее спасибо!