pandas实例——MovieLens电影数据实战分析
在上一篇文章中我介绍了pandas的基本用法,今天我就用pandas实战操作,大家可以一起感受一下数据分析是如何从一堆数字中找到有价值的信息的。下面我也附上了代码,我强烈推荐大家将数据下载下来,亲自去实践敲一遍,我相信收获会更多。
废话不多说! HERE WE GO!!!
一、数据集介绍
我采用的数据是来自MovieLen的电影数据集(https://grouplens.org/datasets/movielens)中的MovieLens 1M Dataset。需要的同学
可以在链接中自行下载。其中有三个dat数据包,分别为:users.dat、ratings.dat、movies.dat。另外还可下载README文件查看数据具体介绍,我在下面就只进行简短的介绍,想偷懒的同学不用看它的,看我的就够啦!^_^
users.dat:UserID、Gender、Age、Occupation、Zip-code
movies.dat:MovieID、Title、Genres
ratings.dat:UserID、MovieID、Rating、Timestamp注:dat文件是数据存储的一种格式,即Data缩写。在pandas中用read_table即可打开。
二、具体分析过程
1、导入数据
ratings = pd.read_table('ratings.dat', header=None, names=['UserID', 'MovieID', 'Rating', 'Timestamp'], sep='::') users = pd.read_table('users.dat', header=None, names=['UserID','Gender','Age','Occupation','Zip-code'], sep='::') movies = pd.read_table('movies.dat', header=None, names=['MovieID', 'Title', 'Genres'], sep='::')
2、数据合并
在数据分析中,将不同的表合并起来汇聚成一张总表,会更加便于我们后面的处理与分析。
data = pd.merge(pd.merge(users, ratings), movies)
3、数据访问
print data[data.UserID == 1]
打印出数据表中UserID为1的用户所有的相关数据信息。
4、不同性别对电影的平均评分
data_gender = data.pivot_table(values='Rating', index='Title', columns='Gender', aggfunc='mean')
采用数据透视,建立以Title为行索引,Gerder为列索引,mean为聚合方法来显示Rating中的数据。这样就获得了一张我们自创的data_gender数据表,下面我们再对该数据表进行操作:
data_gender['difference'] = data_gender.F - data_gender.Mdata_gender_sorted = data_gender.sort_values(by='difference', ascending=False)
我们向data_gender数据表中新插入了一列difference,用来存放男女用户评分的差值。接下来我们对difference列降序排列(或者升序),即可看到不同性别用户对相同电影评分差异最大的电影了。5、平均分较高的电影
data_mean_rating = data.pivot_table(values='Rating', index='Title', aggfunc='mean')data_mean_rating_sorted = data_mean_rating.sort_values(by='Rating', ascending=False)
依然是利用数据透视,对数据进行重新划分后排序,只是此次不再指定列标签,pandas会自动用Rating作为列标签。
随后对数据再进行排序,即可得到平均分较高的电影了,也就是好电影咯!!
6、评分次数最多热门的电影
data_rating_num = data.groupby('Title').size()data_rating_num_sorted = data_rating_num.sort_values(ascending=False)
利用数据分组操作对Title进行分组,并用size()聚合函数即可统计出每个Title出现的次数,即评分次数。再利用排序方法对值进行降序排列,即可获得热门电影的数据表啦!7、问题出现在哪里????
推荐大家按照我上面的步骤,去体验一下数据分析带给我们的快乐!!如果你做了,你就会发现一个很奇怪的问题!这个问题在上面第五项分析中最为明显:为什么那些平均分高的电影,我从来没看过?甚至有些听都没听过呢? 这个问题是不符合常理的,毕竟国内外好电影大家按说都应该耳熟能详的,所以这其中一定存在错误。
这个问题就在于:有些电影只有极少数的人(1-2人)看过,并且觉得很好看,给了很高的评分,这个时候我们去分析数据
的时候,得到的就是这种极小众认为好看的电影。因此,我们应该对评分次数做出最小值限定,使数据更加合理:
加入评分次数限制的分析不同性别对电影的平均评分:
data_gender_hot = data_gender.loc[data_rating_num[data_rating_num > 1000].index]data_gender_hot.sort_values(by='diff', ascending=False)
加入评分次数限制的分析平均分高的电影:
data_mean_rating_number = data_mean_rating.loc[data_rating_num[data_rating_num > 1000].index] data_mean_rating_number_sorted = data_mean_rating_number.sort_values(by='Rating', ascending=False)
三、总结
在数据处理过程中,合并、透视、分组、排序这四大类操作是最经常用的,所以希望大家能够熟练掌握这四种方法的用法。
以上内容就是我为大家带来的运用pandas数据分析的全部内容啦!有问题想与我交流的直接留言即可咯! 拜了个拜~!
代码一定要亲自敲一遍!代码一定要亲自敲一遍!代码一定要亲自敲一遍!
pandas实例——MovieLens电影数据实战分析相关推荐
- 【机器学习-数据科学】第三节:数据分析实例 分析MovieLens电影数据
数据分析实例 分析MovieLens电影数据 导入数据 数据合并 按性别查看各个电影的平均评分 活跃电影排行榜 电影投票数据 grouplens.org/datasets/movielens 把文件放 ...
- Python基金数据实战分析:偏债混合基金篇
Python基金数据实战分析:偏债混合基金篇 如何从众多的基金中选择适合自己的 需求场景 从基金网站获取基金代码 先整体看一下基金情况 获取所有混合C基金的历史净值数据 分析混合C基金 画线图予以核实 ...
- 数据分析与挖掘案例之使用python抓取豆瓣top250电影数据进行分析
使用python抓取豆瓣top250电影数据进行分析 抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 ...
- 基于python的电影数据可视化分析与推荐系统
温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :) 1. 项目简介 本项目利用网络爬虫技术从国外某电影网站和国内某电影评论网站采集电影数据,并对电影数据进行可视化分析, ...
- python金融实务从入门到精通_免费下载中-华尔街学堂:python金融实务从入门到精通,数据实战分析视频教程下载 价值599元...
华尔街学堂:python金融实务从入门到精通 [4.5G] ┣━━第0章 课时 1 学员须知 [145.5M] ┃ ┗━━课时 2 课程讲义及学习资料 [145.5M] ┃ ┣━━data [92.3 ...
- python 豆瓣评论分析方法_使用python抓取豆瓣top250电影数据进行分析
抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 import BeautifulSoup impor ...
- 【Pandas超实用经验汇总-数据建模分析】
Pandas超实用经验汇总-数据分析 前言 基本方法 1.读取文件 2.查看数据 3.修改.删除.替换数据等 总结 前言 看见了很多教程虽然很全,但是很多技巧容易忘记且几乎用不上,读起来晦涩难懂,今天 ...
- python数据分析报告范文_Python数据实战分析之定量和定性数据分析
数据分析中关于数据的部署 数据分析的最后一步--部署,旨在展示结果,也就是给出数据分析的结论.若应用场景为商业,部署过程将分析结果转换为对购买数据分析服务的客户有益的方案.若应用场景为科技领域,则将成 ...
- 基于Python的电影数据可视化分析系统 设计报告+答辩PPT+项目源码
目录 引言 2 1.1 编写目的 2 1.2 读者对象 2 1.3 软件项目概述 2 1.4 文档概述 2 1.5 定义 2 1.6 参考资料 3 软件的一般性描述 4 2.1软件产品与其环境之间的关 ...
最新文章
- df满足条件的值修改_文科生学 Python 系列 16:泰坦尼克数据 2(缺失值处理)
- dump java崩溃自动 不生成_一个宏命令,就可以程序崩溃时生成dump文件
- 【转】如何在 Visual Studio 2019 中连接中国版 Azure
- 苹果cms安装 php映射,苹果cmsV10安装过程中的常见问题处理办法
- Maven 仓库优先级
- java 加载imageview_如何在Android中通过URL加载ImageView? [关闭]
- sfm点云代码_三维重建的方法SFM
- 解决Mac自动切换输入法
- 《BJBR虚拟仿真解决方案(描述精选)》(Yanlz+SteamVR+5G+AI+VR+AR+MR+HR+BR+CR+DR+ER+FR+GR+人工智能+人机交互+立钻哥哥+==)
- Spring【三】容器与Bean扩展点
- Pyinstaller打包
- 5G商用牌照正式发放!万亿级市场大门开启
- 从Google Play上下载apk
- 亿信华辰:怎样去断定一份数据的质量高低?数据质量如何评估?
- 那个叫“中国移动”的精神病人就要被治愈了
- 00.奇特的一生--序言(笔记)
- 详解数组,链表和ADT
- 【组合逻辑电路】——显示译码器
- 整车EOL 诊断系统
- Intel CPU简介