利用python进行数据分析第二章第二个例子

# -*- coding: utf-8 -*-
"""
Created on Thu May  4 17:32:45 2017
利用python进行数据分析第二章第二个例子
数据下载:http://download.csdn.net/download/zdxxinlang/9671783
@author: 80002419
"""
import pandas as pd
import numpy as np


#将数据导入数据框中
users_cols = ['user_id','gender','age','occp','zip']
users=pd.read_table(r"E:\python\data\ml-1m\ml-1m\users.dat",sep='::',header=None,names=users_cols)
ratings_cols = ['user_id','movie_id','rating','rating_date']
ratings = pd.read_table(r"E:\python\data\ml-1m\ml-1m\ratings.dat",sep='::',header=None,names=ratings_cols)
movies_cols = ['movie_id','title','genres']
movies = pd.read_table(r"E:\python\data\ml-1m\ml-1m\movies.dat",sep='::',header=None,names=movies_cols)


#合并三个表
big_table = pd.merge(pd.merge(ratings,users),movies)#默认会根据相同的列名来连接合并
mean_rating = big_table.pivot_table('rating',index='title',columns ='gender',aggfunc=np.mean)


rating_by_tital = big_table.groupby('title').size() ## 得到换title分组后的一数据列对象


#过滤分组大小不够300的电影
active_movies = rating_by_tital.index[rating_by_tital >= 300]


#求评分数大于300的电影的平均评分
mean_rating = mean_rating.ix[active_movies]
#了解女性最喜欢的电影 即女性对电影平均评分最高的电影
top_fmale_movies = mean_rating.sort_values(by='F',ascending=False)#根据F字段,排序
top10_fmale_movies =top_fmale_movies[:10]


#计算男女观影最大分歧
mean_rating['diff'] = mean_rating['M']-mean_rating['F']


sorted_by_diff=mean_rating.sort_values(by='diff')


sorted_by_diff[:15]#分歧最大且女性喜欢看的电影
sorted_by_diff[::-1][:15]#分歧最大且女性喜欢看的电影


#不考虑性别因素的分歧 
ratings_std_by_title = big_table.groupby('title')['rating'].std()#求点电影评分的标准差
ratings_std_by_title = ratings_std_by_title.ix[active_movies]
ratings_std_by_title.order(accending = False)[:10]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crystalnsd

万水千山总是情,支持一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值