Какие есть варианты для ускорения комбинаторики в Python

Всем привет! Подскажите какие есть варианты для ускорения комбинаторики в Python, например можно как то использовать Cython или подобное? Приведу синтетический пример, в реале же данных больше.

ссылка на данные data.xlsx (https://yadi.sk/i/0B4NRBLvdhj2-A)

import pandas as pd
import itertools
from itertools import combinations
import datetime
from datetime import datetime

start_time = datetime.now()
# загрузка данных excel
df=pd.read_excel('data.xlsx')

# суммирует все столбцы
my_list=[(pd.Series(df.loc[:,list(i)].sum(axis=1), name='_'.join(df.loc[:,list(i)].columns))) for i in list(itertools.combinations(df.columns,4))] 
final_df=pd.concat(my_list,axis=1)
print(final_df)

# замеряем скорость скрипта
end_time = datetime.now()
print('Скорость выполнения скрипта: {}'.format(end_time - start_time))


        A_B_C_D  A_B_C_E  A_B_C_F  A_B_C_G  ...  V_W_X_Z  V_W_Y_Z  V_X_Y_Z  W_X_Y_Z
0        5540     5550     5560     5570  ...      530      540      550      560
1        5544     5554     5564     5574  ...      534      544      554      564
2        5548     5558     5568     5578  ...      538      548      558      568
3        5552     5562     5572     5582  ...      542      552      562      572
4        5556     5566     5576     5586  ...      546      556      566      576
      ...      ...      ...      ...  ...      ...      ...      ...      ...
2996    17524    17534    17544    17554  ...    12514    12524    12534    12544
2997    17528    17538    17548    17558  ...    12518    12528    12538    12548
2998    17532    17542    17552    17562  ...    12522    12532    12542    12552
2999    17536    17546    17556    17566  ...    12526    12536    12546    12556
3000    17540    17550    17560    17570  ...    12530    12540    12550    12560

[3001 rows x 14950 columns]
Скорость выполнения скрипта: 0:00:14.608986


Ответы (0 шт):