利用Python进行数据分析---ch02《MovieLens 1M数据集(下)》读书笔记
来源:互联网 发布:陕甘回乱 左中堂知乎 编辑:程序博客网 时间:2024/06/06 03:23
page:30-39页
#coding=UTF-8import pandas as pd'''利用python的切片语法,通过查看每个DataFrame的前几行验证一下数据加载工作是否一切顺利'''unames = ['user_id','gender','age','occupation','zip']users = pd.read_table('c:/pytm/ch02/ml-1m/users.dat',sep='::',header=None,names=unames,engine = 'python')print users[:5]rnames = ['user_id', 'movie_id', 'rating', 'timestamp']ratings = pd.read_table('c:/pytm/ch02/ml-1m/ratings.dat', sep='::', header=None, names=rnames, engine='python')print ratings[:3]mnames = ['movie_id', 'title', 'genres']movies = pd.read_table('c:/pytm/ch02/ml-1m/movies.dat', sep='::', header=None, names=mnames, engine='python')print movies[:4]print '==========分割线==========''''利用python中的merge函数将ratings跟users合并到一起,然后再将movies也合并进去并查看合并后的第一行数据'''data = pd.merge(pd.merge(ratings,users),movies)print data.ix[0]print '==========分割线==========''''现在只要熟悉一下pandas,就能轻松地根据任意个用户或电影属性对评分数据进行聚合操作了。为了按性别计算每部电影的平均得分,我们用pivot_table方法'''mean_ratings = data.pivot_table('rating',index='title',columns='gender',aggfunc='mean')print mean_ratings[:5]print '==========分割线==========''''现在打算过滤掉评分数据不足250条的电影,为了达到这个目的,先对title进行分组,然后利用size()得到一个含有各电影分组大小的Series对象'''ratings_by_title = data.groupby('title').size()print ratings_by_title[:10]active_titles = ratings_by_title.index[ratings_by_title >= 250]# print active_titles#将评分数据超过250条的电影按照男女评分mean_ratings = mean_ratings.ix[active_titles]print mean_ratings'''为了了解女性观众最喜欢的电影,我们可以对F列降序排列'''top_female_ratings = mean_ratings.sort_values(by='F',ascending=False)print top_female_ratings[:10]'''假设我们想找出男性和女性观众分歧最大的电影,一个办法是给出mean_ratings加上一个用于存放平均得分之差的列,并对其进行排序'''mean_ratings['diff'] = mean_ratings['M'] - mean_ratings['F']sorted_by_diff = mean_ratings.sort_values(by='diff')print sorted_by_diff[:10]#对结果反序并取出前15行,得到的则是男性观众更喜欢的电影print sorted_by_diff[::-1][:15]'''如果只是想找出分歧最大的电影(不考虑性别因素),则可以计算得分数据的方差或标准差'''#根据电影名称分组的得分数据的标准差rating_std_by_title = data.groupby('title')['rating'].std()# #根据active_titles进行过滤rating_std_by_title = rating_std_by_title.ix[active_titles]# #根据值对Series进行降序排列print rating_std_by_title.sort_values()[-10:]
2 0
- 利用Python进行数据分析---ch02《MovieLens 1M数据集(下)》读书笔记
- 利用Python进行数据分析---ch02《MovieLens 1M数据集(上)》读书笔记
- 《利用Python进行数据分析》笔记---第2章--MovieLens 1M数据集
- 利用Python 进行数据分析 ch02
- 《利用python进行数据分析》ch02
- 《利用python进行数据分析》ch02续
- 《利用Python进行数据分析》学习笔记ch02-1(1)
- 利用python进行数据分析ch02(usa.gob)
- 《利用Python进行数据分析》学习笔记ch02-2(2)
- 《利用Python进行数据分析》学习笔记ch02-3(3)
- MovieLens 《用Python进行数据分析》
- 《利用Python进行数据分析》第一章读书笔记
- 《利用 Python 进行数据分析》读书笔记
- 【读书笔记】《利用Python进行数据分析》Ch7
- 用pandas处理MovieLens 1m 数据集
- 利用python数据分析-读书笔记1
- 读书笔记:利用Python进行数据分析【第一章:准备工作】
- 利用Python进行数据分析 笔记1
- 数据库分区分表以及读写分离
- 适配器模式(一)
- 25.Oracle深度学习笔记——SQL PROFILE概要文件
- Codeforces Round #345 (Div 2)
- Java基础02-变量,数据类型及其转换
- 利用Python进行数据分析---ch02《MovieLens 1M数据集(下)》读书笔记
- javascript兼容性大盘点
- 设计模式学习笔记——代理模式
- 24.Oracle深度学习笔记——使用存储提纲
- Html+CSS 学习第二天
- 23.Oracle深度学习笔记——内存架构之SGA Buffer Cache
- DevExpress使用dataset变量关联报表数据
- 【JAVA】33、创建多个对象
- win10 UWP Hmac