обновление в pandas данных в многопоточном режиме - PullRequest
0 голосов
/ 20 января 2020

У меня есть размер данных 10000000X70, мне нужно обновить некоторые значения в этом фрейме данных (BIG_DF) на основе значений из samller_DB. В однопоточном это возможно, однако это действительно медленно. Что я сделал, был создан многопоточный экземпляр для обновления BIG_DF, т.е.

 with concurrent.futures.ThreadPoolExecutor(max_workers=AMEND_DB.shape[0]) as executor:
        for i,r in samller_DB.iterrows():
            executor.submit(update_DF, r)

def update_DF(r) -> pd.DataFrame:   
  BIG_DF.loc[(BIG_DF.index.get_level_values('ID1')==r['ID1'])&(BIG_DF.index.get_level_values('ID2')==r['ID2']),[r['column']]]= r['value']

Проблема с этим подходом заключается в том, что у меня есть возможность обновить BIG_DF, а иногда нет, то есть это случайно , Я также пробовал ProcessPoolExecutor, и он медленнее, чем ThreadPoolExecutor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...