Я пытаюсь просмотреть список товаров и посмотреть, сколько раз человек покупал любой товар и оба товара. Таким образом, для каждой сессии (BSTC) существует уравнение (Количество BSTC, которое купило Продукт A и Продукт B) / (Количество BSTC, которое купило Продукт A или Продукт B). Моя главная цель - выяснить, как еще больше ускорить мой код.
Я попробовал следующее, но он работает очень медленно.
for index, row in visits.iterrows():
base_sku=row['ITEM_CLICKED'] # Retrives 1 SKU at a Time
for index2, row2 in visits.iterrows():
comparison_sku=row2['ITEM_CLICKED'] # Retrives another SKU at a Time
if base_sku<comparison_sku:
sessions=visits[visits['ITEM_CLICKED'].map(lambda x: x in [base_sku,comparison_sku])].groupby('BSTC')['ITEM_CLICKED'].apply(lambda x: len(x.unique()))
if len(sessions.value_counts())>1:
sim_mat[index][index2]=sessions.value_counts(2)[2]
sim_mat[index2][index]=sessions.value_counts(2)[2]
elif base_sku==comparison_sku:
sim_mat[index][index2]=1
Желаемые результаты - более быстрое времявремя.