Python数据分析⽰例-电影评分数据#MovieLens 1M数据集含有来⾃6000名⽤户对4000部电影的100万条评分数据。
#它分为三个表:评分、⽤户信息和电影信息。
#数据来源github/wesm/pydata-book/tree/2nd-edition/datasets/movielens
import pandas as pd
#使显⽰的⾏数少⼀些
pd.options.display.max_rows=10
#尽量多地显⽰列
pd.options.display.max_columns=999
#读取.dat⽂件
unames=['user_id','gender','age','occupation','zip']
ad_table('C:\\Users\\Xu\\Desktop\\users.dat',sep='::',header=None,names=unames)
rnames=['user_id','movie_id','rating','timestamp']
ad_table('C:\\Users\\Xu\\Desktop\\ratings.dat',sep='::',header=None,names=rnames)
mnames=['movie_id','title','genres']
ad_table('C:\\Users\\Xu\\Desktop\\movies.dat',sep='::',header=None,names=mnames)
#验证数据加载是否成功
print(users)
print('=====================================================')
print(ratings)
print('=====================================================')
print(movies)
print('=====================================================')
#合并ratings,users,然后合并movies
(pd.merge(ratings,users),movies)
print(data)
print('=====================================================')
#查看data第⼀组数据
print(data.iloc[0])
print('=====================================================')
#按性别计算每部电影平均得分
mean_ratings=data.pivot_table('rating',index='title',columns='gender',aggfunc='mean')
print(mean_ratings[:5])
print('=====================================================')
#过滤掉评分数据不⾜250条的电影
#1.⾸先对title分组
ratings_by_upby('title').size()
print(ratings_by_title[:10])
print('=====================================================')
#2.出评分数据⼤于等于250的电影
active_titles=ratings_by_title.index[ratings_by_title>=250]
print(active_titles)
print('=====================================================')
#查看mean_ratings评分数据⼤于250条的电影
mean_ratings=mean_ratings.loc[active_titles]
print(mean_ratings)
print('=====================================================')
#了解⼥性观众最喜欢的电影,对F列降序排列
top_female_ratings=mean_ratings.sort_values(by='F',ascending=False)python怎么读取dat文件
print(top_female_ratings[:10])
print('=====================================================')
#出男性和⼥性观众分歧最⼤的电影
#给mean_ratings加上⼀个⽤于存放平均得分之差的列
mean_ratings['diff']=mean_ratings['M']-mean_ratings['F']
#对diff列升序排列,可得到分歧最⼤且⼥性观众更喜欢的电影
sorted_by_diff=mean_ratings.sort_values(by='diff')
print(sorted_by_diff[:10])
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论