数据分析(一)豆瓣华语电影分析

在之前,我们已经用通过爬虫获取了豆瓣华语电影共33133部电影的数据,具体爬虫介绍请见之前的博文,爬虫实战(一)利用scrapy爬取豆瓣华语电影。本文对爬虫过程进行简要概述后,对这部分数据进行分析。

1. 前言

随着生活的水平提高,人们开始了对精神生活的追求,电影已经成为我们生活中必不可少的一项娱乐活动。近年来,中国电影产业发展迅速,华语电影数量和票房也频频突破新高。而一个行业的发展,不仅需要数量,还要质量。那华语电影近些年整体的质量如何呢?本文通过对豆瓣华语电影数据进行爬虫和分析,带大家了解华语电影这些年来的产量质量趋势、影片类型分布,以及哪些导演或演员是好片或烂片专业户。

2. 数据获取

在分析豆瓣网页结构后,使用python的Scrapy框架爬取了豆瓣华语电影,即中国大陆、香港、台湾地区总共33133部,并将数据存储在本地的MongoDB数据库中。对于每部电影,收集以下12个字段:

  • id: 豆瓣id
  • title: 电影名称
  • year: 上映年份
  • region: 制片地区
  • language: 语言
  • director: 导演
  • type: 类型
  • actor: 主演
  • date: 上映日期
  • runtime: 片长
  • rate: 评分
  • rating_num: 参与评分人数

具体示例如下:
数据描述

3. 数据清洗

在进入分析之前,需要对获取的数据进行清洗和处理。首先,使用pymongo模块将数据库中的数据导入,接着使用pandas库进行处理。

3.1 缺失值处理

通过打印每一列的空值统计,可以看到部分列都存在空值。之前在数据爬取的过程中,发现一般如果电影是在院线上映的且年代不是特别久远的,所有的信息都很完整。如果出现导演、演员、上映日期等的一些列为空的,大部分是网络电影或者是没有上映的。所以这里将在演员、导演、语言、类型、上映时间这5列中任一列出现空值的数据都做删除处理。另外对于年份一列有缺失的,采用上映日期的年份进行填充。

3.2 数据格式处理

为了后续分析方便,将部分列的数据格式进行转换,如将评分和评分人数这两列由string类型分别转为float类型和int类型;将语言一列list中的"/“分割改为”,"分割等。

3.3 增加辅助列

通过观察数据发现,如果一部电影是多个地区合作制作的,那么地区这一列的list中就有多个地区的元素。以这种展现形式,不便于后续以地区为维度进行分析。因本文主要分析华语地区,即中国大陆、香港、台湾,于是增加三列辅助列,属于该地区则标记为1,否则为0。如果某部电影的制作地区同时出现中国大陆、香港、台湾,则这三列辅助列都标记为1,表示同时属于这三个地区。对电影类型一列,也做类似的处理。

3.4 数据筛选

在爬取的电影中,可以看到有些电影的影片类型是综艺节目、脱口秀、晚会等,另外有些电影有上映日期但未上映的。因此,对这部分数据进行剔除,只保留豆瓣电影筛选页面显示的22个分类以及已经上映的电影数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值