Как использовать concurrent.futures в кадре данных Pandas с функцией Apply?Python

Программы на Python
Anonymous
Как использовать concurrent.futures в кадре данных Pandas с функцией Apply?

Сообщение Anonymous »

Я пытался распараллелить свой код и потратил некоторое время на изучение Dask, Pandarallel, но по той или иной причине они не сработали, поэтому сейчас я рассматриваю возможность реализации concurrent.futures.
Вот как выглядит моя формулировка проблемы:

1)def do_stuff( (self.param1, self.param2) , abs(self.param3) ):
значение = многошаговое уравнение self.param1, self.param2,
self.param3 (это занимает более 2–5 минут на каждую строку)

возвращаемое значение.
2)df['value'] = df.apply(lambda row: do_stuff((self.param1,
self.param2) , abs(self.param3)) , axis =1)

Поскольку мой df имеет более 1500 строк, и обработка каждой строки занимает около 2 минут за одну core, я считаю, что многопроцессорная обработка принесет мне пользу. Я начинаю понимать, как работают пул и ProcessPoolExecutor, но застрял в синтаксисе использования df.apply с многопроцессорной обработкой. Я просмотрел примеры в Интернете, но не смог найти ни одного, связанного с функцией применения с использованием фрейма данных.

Код: Выделить всё

with ThreadPoolExecutor(max_workers=1) as executor:
future = executor.submit(pow, 323, 1235) ------> modify this line to process a df.apply

write back the result to a df.
Может ли кто-нибудь помочь мне с простым синтаксисом или указать правильное направление? Я очень ценю это!

Подробнее здесь: https://stackoverflow.com/questions/756 ... y-function

Вернуться в «Python»