У меня есть размер данных 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.