У меня этот объектив dataframe. У него есть столбцы для классификации жанров, к которым принадлежит фильм. Категории жанров - это имена столбцов с двоичными значениями в строках. Если фильм принадлежит жанру, он имеет 1 под соответствующим столбцом и 0 в противном случае. Я хочу рассчитать средний рейтинг по жанру для каждого пользователя в python pandas.Как вы рассчитываете средний рейтинг по жанру в python?
# pass in column names for each CSV
u_cols = ['user_id', 'age', 'sex', 'occupation', 'zip_code']
users = pd.read_csv('C:/Users/End-User/Desktop/ml-100k/u.user',
sep='|',names=u_cols, encoding='latin-1')
r_cols = ['user_id', 'movie_id', 'rating', 'unix_timestamp']
ratings = pd.read_csv('C:/Users/End-User/Desktop/ml-100k/u.data',
sep='\t', names=r_cols, encoding='latin-1')
# Reading item file:
m_cols = ['movie_id', 'title' ,'release_date','video_release_date', 'imdb_url',
'unknown', 'Action', 'Adventure', 'Animation', 'Children\'s', 'Comedy',
'Crime', 'Documentary', 'Drama', 'Fantasy', 'Film-Noir', 'Horror',
'Musical', 'Mystery', 'Romance', 'Sci-Fi','Thriller', 'War', 'Western']
movies = pd.read_csv('C:/Users/End-User/Desktop/ml-100k/u.item',
sep='|', names=m_cols, encoding='latin-1')
# create one merged DataFrame
movie_ratings = pd.merge(movies, ratings)
lens = pd.merge(movie_ratings, users)
# I have tried this but don't know how to get the average of the ratings for each user.
df = pd.pivot_table(lens, index = ['user_id'],
columns = ['unknown', 'Action', 'Adventure', 'Animation',
'Children\'s', 'Comedy', 'Crime', 'Documentary',
'Drama', 'Fantasy', 'Film-Noir', 'Horror',
'Musical', 'Mystery', 'Romance', 'Sci-Fi',
'Thriller', 'War', 'Western'],
values = ['rating'])
print df
Что именно ваш вопрос. Что вы пробовали? –
Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [по теме] (http://stackoverflow.com/help/on-topic) и [как спросить] (http://stackoverflow.com/help/how-to-ask) применяются здесь. StackOverflow не является кодовым или учебным сервисом. – Prune