Untitled
unknown
python
a year ago
1.4 kB
9
Indexable
# выполняем левое объединение events_test с top_k_pop_items по item_id,
# чтобы добавить столбец avg_rating в cold_users_events_with_recs.
# при совпадении по item_id значение будет взято из столбца avg_rating таблицы top_k_pop_items,
# иначе — будет пропуск (NaN).
cold_users_events_with_recs = \
events_test[events_test["user_id"].isin(cold_users)] \
.merge(top_k_pop_items[["item_id", "avg_rating"]], on="item_id", how="left")
cold_user_items_no_avg_rating_idx = cold_users_events_with_recs["avg_rating"].isnull()
cold_user_recs = cold_users_events_with_recs[~cold_user_items_no_avg_rating_idx] \
[["user_id", "item_id", "rating", "avg_rating"]]
# вычисляем количество событий, для которых найдены рекомендации (где есть значение в столбце avg_rating)
num_cold_user_events_with_recs = len(cold_user_recs)
# вычисляем общее количество событий «холодных» пользователей.
total_cold_user_events = len(cold_users_events_with_recs)
# вычисляем долю событий с рекомендациями среди всех событий «холодных» пользователей
fraction_with_recs = num_cold_user_events_with_recs / total_cold_user_eventsEditor is loading...
Leave a Comment