У меня есть большой фрейм данных, который я хочу разделить и запустить эти разделения параллельно через функцию. Затем я хочу объединить результат в окончательный фрейм данных. Моя параллельная функция выглядит так:
def parallel(df, func, n_cores=4):
df_split = np.array_split(df, n_cores)
pool = Pool(n_cores)
df = pd.concat(pool.map(func, df_split))
pool.close()
pool.join()
return df
Пример функции:
def example(df):
...
display(df)
return df
Запуск их:
data = {'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]}
df = pd.DataFrame(data)
test = parallel(df, example)
test()
Я проверил функцию parallel
и оно работает. Он разбивает информационный кадр на 4 блока и анализирует их в моей функции example
. Все они отображаются индивидуально. Но возврат из моей example
функции не работает. Я получаю следующую ошибку, и это заставляет меня думать, что это что-то с этим возвратом в конкатенацию?
Error sending result: Reason: 'AttributeError("'NoneType' object has no attribute 'picklable'")
Просто странно, как они отображаются, но не возвращаются! Любая помощь будет оценена.