目录

  • 准备工作
    • 数据下载
    • 分析任务
  • 数据处理
    • 数据读取
    • 数据合并
    • 数据分析

准备工作

数据下载

从网站 grouplens.org/datasets/movielens 下载 MovieLens 1M Dataset 数据,该文件包含大约3883部电影的1000209个匿名评级。
文件中包含三个数据表,分别为用户表、电影表及评分表。

分析任务

1、统计电影平均得分
2、男女生评分差距最大的电影
3、女生最喜欢的电影排行榜
4、男生最喜欢的电影排行榜
5、统计活跃电影 -> 获得评分的次数越多说明电影越活跃

数据处理

数据读取

# 导入必要的模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

1、用户表users.dat包含5列,分别为用户id、性别、年龄、职业及邮编

1::F::1::10::48067
2::M::56::16::70072
3::M::25::15::55117
4::M::45::7::02460
5::M::25::20::55455
6::F::50::9::55117
7::M::35::1::06810
8::M::25::12::11413
9::M::25::17::61614
10::F::35::1::95370
···

读取users.dat

movie_names = ['movie_id', 'title', 'genres']
movies = pd.read_table('ml-1m/movies.dat', sep='::', header=None, names=movie_names, engine='python')
print(len(movies))
movies.head(5)
# 运行结果


2、电影表movies.dat包含3列,分别为电影id、电影名称及电影类型

1::Toy Story (1995)::Animation|Children's|Comedy
2::Jumanji (1995)::Adventure|Children's|Fantasy
3::Grumpier Old Men (1995)::Comedy|Romance
4::Waiting to Exhale (1995)::Comedy|Drama
5::Father of the Bride Part II (1995)::Comedy
···

读取movies.dat

rating_names = ['user_id', 'movie_id', 'rating', 'timestamp']
ratings = pd.read_table('ml-1m/ratings.dat', sep='::', header=None, names=rating_names, engine='python')
print(len(ratings))
ratings.head(5)
# 运行结果


3、评分表ratings.dat包含4列,分别为用户id、电影id、评分及日期

1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
1::3408::4::978300275
1::2355::5::978824291
···

读取ratings.dat

rating_names = ['user_id', 'movie_id', 'rating', 'timestamp']
ratings = pd.read_table('ml-1m/ratings.dat', sep='::', header=None, names=rating_names, engine='python')
print(len(ratings))
ratings.head(5)
# 运行结果

数据合并

data = pd.merge(pd.merge(users, ratings), movies)
print(len(data))
data.head(5)


查看用户id为1的记录

data[data.user_id == 1].head(5)

数据分析

1、统计电影平均得分
统计各个电影在男性和女性观众中的平均分及总平均分

mean_ratings_gender = data.pivot_table(values='rating', index='title',columns='gender', aggfunc='mean')
mean_ratings_gender['rating'] = (mean_ratings_gender['F'] + mean_ratings_gender['M']) / 2
mean_ratings_gender.head(5)


前二十大高分电影

mean_ratings = data.pivot_table(values='rating', index='title', aggfunc='mean')
top_20_mean_ratings = mean_ratings.sort_values(by='rating',ascending=False).head(20)
top_20_mean_ratings

2、男女生评分差距最大的电影

mean_ratings_gender['diff'] = abs(mean_ratings_gender.F - mean_ratings_gender.M)
mean_ratings_gender['diff'] = abs(mean_ratings_gender.F - mean_ratings_gender.M)


3、女生最喜欢的电影排行榜

mean_ratings_gender.sort_values(by='F', ascending=False).head(10)


4、男生最喜欢的电影排行榜

mean_ratings_gender.sort_values(by='M', ascending=False).head(10)


5、统计活跃电影 -> 获得评分的次数越多说明电影越活跃

# 统计每个电影获得评分的次数
ratings_by_movie_title = data.groupby('title').size()
top_10_ratings = ratings_by_movie_title.sort_values(ascending=False).head(10)
top_10_ratings# 运行结果
title
American Beauty (1999)                                   3428
Star Wars: Episode IV - A New Hope (1977)                2991
Star Wars: Episode V - The Empire Strikes Back (1980)    2990
Star Wars: Episode VI - Return of the Jedi (1983)        2883
Jurassic Park (1993)                                     2672
Saving Private Ryan (1998)                               2653
Terminator 2: Judgment Day (1991)                        2649
Matrix, The (1999)                                       2590
Back to the Future (1985)                                2583
Silence of the Lambs, The (1991)                         2578
dtype: int64

pandas实例——电影数据分析相关推荐

  1. 机器学习数据科学包(三)——Pandas实例:MovieLens电影数据分析

    电影数据分析 准备工作 从网站 grouplens.org/datasets/movielens 下载 MovieLens 1M Dataset 数据. 数据说明 参阅数据介绍文件 README.tx ...

  2. python pandas 豆瓣电影 top250 数据分析

    python pandas 豆瓣电影 top250 数据分析 豆瓣电影top250数据分析 数据来源(豆瓣电影top250) 爬虫代码比较简单 数据较为真实,可以进行初步的数据分析 可以将前面的几篇文 ...

  3. python电影数据分析的代码_python-small-examples

    Kaggle电影数据分析实战 本项目基于Kaggle电影影评数据集,通过这个系列,你将学到如何进行数据探索性分析(EDA),学会使用数据分析利器pandas,会用绘图包pyecharts,以及EDA时 ...

  4. 附录3:Pandas实例记录

    Pandas广泛用于数据分析,有两种数据结构:Series和DataFrame,Pandas的操作以列为核心,部分原因在于机器学习的特征以列保存 #Pandas实例记录 #基本数据结构:Series和 ...

  5. 大数据项目开发案例_大数据分析技术——项目案例1(猫眼电影数据分析上)...

    壹 猫眼Top100电影数据分析概述 从这一节开始,我们就综合利用已学到的一些分析技术来尝试做一些比较复杂的实际数据分析项目.在这些实际的项目案例中,我们将会看到一个完整的数据分析流程:数据清理--数 ...

  6. Rotten Tomatoes 电影数据分析

    "烂番茄"电影数据分析 "烂番茄"电影数据分析 背景 数据采集及处理 数据可视化 得出结论 背景 一千个读者眼中有一千个哈姆雷特, 看电影也是一种艺术鉴赏活动, ...

  7. python基于爬虫技术的海量电影数据分析源码,数据处理分析可视化,GUI界面展示

    基于爬虫技术的海量电影数据分析 介绍 一个基于爬虫技术的海量电影数据分析系统 系统架构 本系统主要分为四个部分,分别为后端爬虫抓取.数据处理分析可视化.GUI界面展示.启动运行,分别对应getData ...

  8. Django+pyecharts实现电影数据分析可视化

    上篇文章pyecharts实现电影数据分析可视化已经实现了pyecharts可视化,这篇文章主要实现Django结合pyecharts做一个可视化的小网站/系统. 我是在Centos7虚拟机上用Sub ...

  9. ML之FE:pandas库中数据分析利器之groupby分组函数、agg聚合函数、同时使用groupby与agg函数组合案例之详细攻略

    ML之FE:pandas库中数据分析利器之groupby分组函数.agg聚合函数.同时使用groupby与agg函数组合案例之详细攻略 目录 pandas库中数据分析利器之groupby分组函数.ag ...

最新文章

  1. 终端下中文乱码解决方法
  2. 解决 webstrom sass 注释中文出错问题
  3. 超全!Python获取某一日期是“星期几”的6种方法!
  4. 探索Julia(part9)--字符串处理
  5. 使用Python解压,对比文件
  6. android libyuv库的使用
  7. 宅男福利——在控制台上跳极乐净土(音频版)
  8. 设置页眉为计算机网络,word文档设置页眉线如题,怎么设置上边的 – 手机爱问...
  9. 戴尔u盘安装linux系统,戴尔服务器操作系统安装 Centos 系统安装详解教程。
  10. 从360、QQ之争看腾讯的无耻
  11. 小米全国高校编程大赛 高弗雷勋爵
  12. 一种新型的EC编码,LRC码,基于RS码的改进,特点介于RS和副本之间。
  13. 正则表达式-re.error: unbalanced parenthesis at position 7
  14. word拆分表格宽度发生大小变化问题
  15. web概念、B/C、C/S区别与优缺点以及网络通信三要素:IP、端口号、传输地址
  16. 【OrientedRepPoints】Oriented RepPoints for Aerial Object Detection核心点概括
  17. 暗原色原理去雾matlab代码(Matlab)
  18. AutoRunner 功能自动化测试项目实训之权重的修改(十五)
  19. 布隆过滤器速度_布隆过滤器,你也可以处理十几亿的大数据
  20. 【开奖】犀牛书获奖名单,留言开通成功,有奖征集意见赠书!

热门文章

  1. 【锁屏】 Ubuntu20.04 锁屏快捷键无反应的解决方法
  2. win7系统安装教程
  3. BI神器Power Query(13)-- PQ制作时间维度表(2)
  4. linux远程win7无法连接wifi,苹果电脑win7系统连不上wifi热点深度纯净
  5. Heatmap热力图、pandas.DataFrame.corr()、皮尔森相关系数
  6. linux 目录 问号 原因,linux – 如何修复所有问号作为权限的目录
  7. 19.Eager模式
  8. SpreadJS表格中关于下拉框new GC.Spread.Sheets.CellTypes.ComboBox()的设置和使用
  9. 为什么说速度超过光速能回到过去
  10. 小程序版道歉文案自动生成 道歉神器源码分享