Как мне посчитать, сколько пользователей оценили указанный c movieId? - PullRequest
0 голосов
/ 08 марта 2020

Я хотел бы посчитать, сколько пользователей оценили указанный c movieId? Я попытался использовать pandas .ilo c, но результат все еще не так, как ожидалось. Ожидаемый результат будет следующим:

Например, я использую набор данных MovieLens и, скажем, movieId 302 на самом деле имеет всего 10 пользователей с рейтингом этот параметр c mov ie.

Данные находятся в кадре данных. По вашему мнению, каким способом я должен попытаться получить ожидаемый результат? Я действительно ценю, если я могу учиться у вас. Спасибо.

image

!wget "http://files.grouplens.org/datasets/movielens/ml-100k.zip"
!unzip ml-100k.zip
!ls

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv("ml-100k/u.data", sep='\t',names="userId,movieId,rating,timestamp".split(",")) 
data

1 Ответ

1 голос
/ 08 марта 2020

Предполагая, что один пользователь не может оценить один и тот же mov ie дважды, для начала вы можете попробовать:

df.groupby('movieId')['userId'].count().reset_index(name='userIdCount')

(reset_index () должен вернуть его в качестве кадра данных)

тогда у вас будет:

    movieId userIdCount
0   1       5
1   2       1
2   3       2

Если вы хотите убедиться, что ни один пользователь не проголосовал более одного раза, вы также можете использовать:

df.groupby('movieId')['userId'].nunique().reset_index(name='userIdCount')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...