노트 - 제2 장 - MovieLens 1M 데이터 세트

3575 단어 Python
앞 에 쓰 인 말:
인 스 턴 스 의 모든 데 이 터 는 GitHub 에서 다운로드 되 고 포장 하여 다운로드 하면 됩 니 다.주 소 는:http://github.com/pydata/pydata-book
그리고 꼭 설명해 야 할 것 이 있 습 니 다.
저 는 Python 2.7 을 사 용 했 습 니 다. 책 에 있 는 코드 가 잘못 되 었 습 니 다. 저 는 자신의 2.7 버 전 으로 바 꾸 었 습 니 다.
# coding: utf-8
import pandas as pd
unames = ['user_id','gender','age','occupation','zip']
users = pd.read_table('D:\Source Code\pydata-book-master\ch02\movielens\users.dat', sep='::', header=None, names=unames)
rnmaes = ['user_id','movie_id','rating','timestamp']
ratings = pd.read_table('D:\Source Code\pydata-book-master\ch02\movielens\\ratings.dat', sep='::', header=None, names=rnmaes)
mnames = ['movie_id','title','genres']
movies = pd.read_table('D:\Source Code\pydata-book-master\ch02\movielens\movies.dat', sep='::', header=None, names=mnames)

users[:5]
ratings[:5]
movies[:5]

ratings

data = pd.merge(pd.merge(ratings, users), movies)
data.ix[0]
mean_rating = data.pivot_table('rating', index='title', columns='gender', aggfunc='mean')
mean_rating[:5]
ratings_by_title = data.groupby('title').size()
ratings_by_title[:10]

active_titles = ratings_by_title.index[ratings_by_title >= 250]
active_titles

mean_rating = mean_rating.ix[active_titles]
mean_rating

top_female_rating = mean_rating.sort_index(by='F', ascending=False)
top_female_rating[:10]

mean_rating['diff'] = mean_rating['M'] - mean_rating['F']
sorted_by_diff = mean_rating.sort_index(by='diff')
sorted_by_diff[:15]

sorted_by_diff[::-1][:15]

ratings_std_by_title = data.groupby('title')['rating'].std()
ratings_std_by_title = ratings_by_title.ix[active_titles]
ratings_std_by_title.order(ascending=False)[:10]
ratings_std_by_title

좋은 웹페이지 즐겨찾기