Я ищу идеи для оптимизации моей функции. У меня ограниченные знания по многопроцессорности, поэтому я просто ищу кого-то, кто бы указал мне правильное направление!
Итак, у меня есть пандас DataFrame со следующим форматом
---------------------------------------------------
|Date | Portfolio | Classification | P&L |
--------------------------------------------------
| 2016-01-01 | A | Class_1 | 100 |
--------------------------------------------------
|2016-01-02 | A | Class_2 | 200 |
. .
. .
. .
--------------------------------------------------
|2019-10-31 | A | Class_700 | -200 |
--------------------------------------------------
Все, что мне нужно, чтобы получитьотсюда и атрибуция P & L, которая в основном объясняет, как каждый уникальный класс генерировал p & l с момента его создания, и у меня есть еще одна функция для этого ...
В настоящее время моя логика:
for unique_class in df['Classification'].unique():
class_df = df[df['Classification'] == unique_class].copy()
result1, result2 = call_attribution_function(class_df)
overall_results1.append(result1)
overall_results2.append(results2)
Эторабота сделана, но, очевидно, очень медленно. В реальном сценарии у меня более 700 уникальных классификаций. Однако ни одна из классификаций не зависит друг от друга. В основном все 700 могут обрабатываться параллельно, и это значительно улучшит производительность.
Есть идеи, как этого достичь? Я видел несколько примеров с joblib , но у меня не было большого направления для нарезки фреймов данных и распараллеливания функций с несколькими возвращаемыми переменными.
Любые указатели высоко ценятся! Заранее спасибо!