Как оптимизировать матрицу сходства с groupby для скорости? - PullRequest
1 голос
/ 14 октября 2019

Я пытаюсь просмотреть список товаров и посмотреть, сколько раз человек покупал любой товар и оба товара. Таким образом, для каждой сессии (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

Желаемые результаты - более быстрое времявремя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...