Pandas 实战 Kaggle 百万级影评数据集之 10 大问题探索分析

今天继续探索 twitter 电影数据集,昨天我们已经对这个数据集完成特征工程处理,三张表分别关于电影、用户和电影评分。在探索前,我们设想几个有趣的问题,循着好奇心,更容易坚持下去,看完今天这篇 EDA 实战。

问题包括:

  1. 29 类电影中,猜测下哪几类影片数是最多的?
  2. 从上世纪初到现在,电影的产出数是平稳的还是线型增长,或者指数增长?
  3. 喜剧片、动作片、爱情片、惊悚片你心目中的 TOP10 榜单是怎样的? 根据 twitter 80 多万影评,挖出的TOP榜单又是怎样的?
  4. 近 100 年,所有电影的 TOP10 榜单里有我们熟知的肖申克救赎,阿甘正传吗?
  5. 近 100 年,最烂的垃圾篇 BAD10 榜单里都有哪些部电影被不幸入选?
  6. 哪些电影是最有槽点的,被人们茶余饭后津津乐道呢?
  7. 有哪些时期人们的吐槽兴致大增?
  8. 哪些影迷最能吐槽吗?他们的 twitter ID 也被挖出来了!
  9. 他们的吐槽数能有几千条吗?
  10. 他们的评论严厉吗?平均评论得分是多少?

今天,通过 twitter 电影数据集进行有趣的数据分析,一一回答以上 8 个问题。

今天课程的完整 notebook 代码,下载地址链接: 链接: https://pan.baidu.com/s/1oR1Ok41gfY9M4QRzRu4w 提取码: ryp6

今天课程使用的包如下:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from pyecharts.charts import Bar,Grid,Line,Pie
import pyecharts.options as opts
from pyecharts.globals import ThemeType

from snapshot_phantomjs import snapshot # pyecharts导出图片使用到的库
from pyecharts.render import make_snapshot

1 哪几类影片数最多?

重新熟悉下三个 DataFrame 的前五行:

movies2.head()

users.head()

ratings.head()

昨天已经得出最百花齐放的前 10 类电影:

top10
[('Mystery', 2649),
 ('Adventure', 3116),
 ('Documentary', 3224),
 ('Horror', 4288),
 ('Crime', 4723),
 ('Action', 5175),
 ('Romance', 5987),
 ('Thriller', 7307),
 ('Comedy', 10741),
 ('Drama', 17589)]

排名第一的是 Drama (戏剧)类电影,一共有 17589 部,那么它的出厂时间跨度呢?

movies2.drop('index',axis=1,inplace=True) # 删除 index 列
movies2

mdrama = movies2[movies2['Genre'].str.contains('Drama')]
mdrama

mdrama.sort_values(by='year') 

看到 Drama 电影最早出厂追溯到上世纪 1909 年, 最近出厂年份 2019 年,整整110年。

2 近百年电影的产出数如何变化?

接下来,我们每十年,对数据完成下采样。

tmp = mdrama.copy()
tmp.loc[:,'yeardt'] = pd.to_datetime(mdrama['year'],format='%Y')
tmp
tmpdt_index = pd.DatetimeIndex(tmp['yeardt'].dt.date)
tmpdt_index # 先创建 DatetimeIndex 索引对象

tmp.loc[:,'Movie Count'] = 1
tmp10 =  tmp.set_index(tmpdt_index).resample('10Y')['Movie Count'].sum().to_frame()
tmp10

resample 我们在专栏 day36 : Pandas 12 个实用小技巧里已经讲到,不会的读者可以返回去看看。

最终得到的结果如下所示:

直观展示以上数据:

c = (
    Bar()
    .add_xaxis(tmp10.index.year.to_list())
    .add_yaxis("电影数", tmp10['Movie Count'].to_list(), category_gap=0,color='blue')
   .set_global_opts(title_opts=opts.TitleOpts(title="每10年Drama类电影生产数"))

)

c.render_notebook()

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值