У меня есть DataFrame
, представляющий матрицу элементов пользователя в виде списка со столбцами:
user_id item_id rating timestamp
Поскольку я хочу сделать рекомендацию с учетом времени, я хочу добавить столбецс упорядоченным списком (так как у меня есть временная метка) последних элементов, оцененных 1
(например) пользователя, поэтому я получаю DataFrame
вроде:
user_id item_id rating timestamp prev_items_rated_by_usr_with_1
Яне в состоянии сделать это параллельно, и мне это нужно, так как набор данных огромен.
Это работает, но я не уверен, что он возвращает элементы, упорядоченные по метке времени, и невероятно долго для выполнения:
df['new'] = df.apply(lambda row:list(df.loc[df.user_id==row['user_id']].loc[df.timestamp<row['timestamp']].loc[df.rating==1].item_id.unique()), axis = 1)