Используйте ниже, должно работать быстрее:
import itertools
my_list=[(pd.Series(df.loc[:,list(i)].sum(axis=1),\
name='_sum_'.join(df.loc[:,list(i)].columns))) for i in list(itertools.combinations(df.columns,2))]
final_df=pd.concat(my_list,axis=1)
print(final_df)
duration_sum_credit_amount duration_sum_installment_commitment \
0 1175 10
1 5999 50
2 2108 14
3 7924 44
4 4894 27
credit_amount_sum_installment_commitment
0 1173
1 5953
2 2098
3 7884
4 4873
Объяснение : print(list(itertools.combinations(df.columns,2)))
дает:
[('duration', 'credit_amount'),
('duration', 'installment_commitment'),
('credit_amount', 'installment_commitment')]
Пост, который делает:
for i in list(itertools.combinations(df.columns,2)):
print(df.loc[:,list(i)])
print("---------------------------")
печатает комбинации столбцов вместе.поэтому я просто суммировал его по оси = 1, вызвал его в pd.series и дал ему имя, присоединившись к ним.
Публикуйте это, просто добавьте их в список и объедините их по оси = 1, чтобы получитьконечный результат.:)