Как можно улучшить скорость работы цикла?

Jhonny

Новичок
Пользователь
Окт 15, 2022
3
0
1
Подскажите, каким способом или как переписать код для улучшения скорости работы с циклами для больших данных.
Цели задачи: из двух таблиц ALL (443863 rows × 8 columns) и UFC (33563 rows × 8 columns) создать сводный список rows_from_ALL с набором данных по условиям.
Вот такой код работает медленно, хотелось бы его оптимизировать в плане производительности:

rows_from_ALL = []
for i,row1 in enumerate(ALL.itertuples(index=True)):
for y,row2 in enumerate(UFC.itertuples(index=True)):
if row1.idDevice == row2.idDevice:
if (row1.tsEvent > row2.tsEvent) & (row1.tsEvent < (row2.tsEvent + 3600)):
if row1.RN > row2.RN:
rows_from_ALL.append(row1)
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
370
107
43
Ну хотя бы для начала избавься от enumerate(), не понятно зачем он там, если нигде не используются порядковые i, y. А эти таблицы ALL и UFC они что из себя представляют, ну типо они считываются с файла/бд или это уже тип данных в самом питоне?
 

Jhonny

Новичок
Пользователь
Окт 15, 2022
3
0
1
Ну хотя бы для начала избавься от enumerate(), не понятно зачем он там, если нигде не используются порядковые i, y. А эти таблицы ALL и UFC они что из себя представляют, ну типо они считываются с файла/бд или это уже тип данных в самом питоне?
Про enumerate понял, но особо тоже не помогает в скорости. ALL и UFC это тип данных DataFrame(), которые считываются из CSV-файла.
 

Форум IT Специалистов