Python 数据分析微专业课程--项目实战10 国产烂片深度揭秘

1.项目说明

读取电影数据,筛选出烂片数据,从各个角度分析烂片特征

2.项目具体要求

1、读取数据,以“豆瓣评分”为标准,看看电影评分分布,及烂片情况
要求:
① 读取数据“moviedata.xlsx”
② 查看“豆瓣评分”数据分布,绘制直方图、箱型图
③ 判断“豆瓣评”数据是否符合正态分布
④ 如果符合正态分布,这里以上四分位数(该样本中所有数值由小到大排列后第25%的数字)评分为“烂片标准”
⑤ 筛选出烂片数据,并做排名,找到TOP20

2、什么题材的电影烂片最多?
要求:
① 按照“类型”字段分类,筛选不同电影属于什么题材
② 整理数据,按照“题材”汇总,查看不同题材的烂片比例,并选取TOP20
③ 将得到的题材烂片比例TOP20制作散点图 → 横坐标为“题材”类型,纵坐标为烂片比例,点大小为样本数量

3、和什么国家合拍更可能产生烂片?
要求:
① 按照“制片国家/地区”字段分类,筛选不同电影的制片地
② 整理数据,按照“题材”汇总,查看不同题材的烂片比例,并选取TOP20

4、卡司数量是否和烂片有关?
要求:
① 计算每部电影的主演人数
② 按照主演人数分类,并统计烂片率
   ** 分类:'1-2人','3-4人','5-6人','7-9人','10以上'
③ 查看烂片比例最高的演员TOP20

5、不同导演每年电影产量情况是如何的?
要求:
① 通过“上映日期”筛选出每个电影的上映年份
② 查看不同导演的烂片比例、这里去除掉拍过10次电影以下的导演
③ 查看不同导演每年的电影产量制作散点图 → 横坐标为年份,纵坐标为每年电影平均分,点大小该年电影数量

3.实现思路:

1.项目目的是对国产烂片进行分析,所以首先需要将烂片电影筛选出来,因此需要确定一个烂片的标准。这里可以对电影的豆瓣评分分布
进行正态性检验,如果符合正态分布,将评分小于1/4分位的电影作为烂片。
  首先读取数据,并筛选出分析所需字段,去除空值,然后根据豆瓣评分数据绘制直方图、箱型图查看其分布,使用stats.kstest()计算其P值,
若符合正太分布,即可计算1/4分位,作为烂片筛选的标准。

2.根据数据,一部电影可能符合多个类型,多个主要演员,多个导演,多个国家合拍,因此可能需要进行多次的对字段进行拆分并进行纵向连接的操作,
因此可以创建一个函数完成对字段拆分和重新连接。这里分析哪些电影题材烂片较多,可以对'类型'字段使用函数进行拆分连接,按照“题材”对全部数据和烂片分组求和,
汇总计算烂片比例,排序后选取TOP20。对TOP20数据绘制散点图。这样可以清晰的得到各个题材电影的烂片数量和比例。

3.分析合拍片的烂片情况,需要首先对'制片国家/地区'字段进行清洗筛选出合拍片,进行拆分连接,然后根据国家进行分组计数,
分别计算拍片数量和烂片数量,即可知道合拍片中与各个国家产生的烂片情况。

4.分析主演人数与烂片的关系,先对'主演'字段进行拆分,计算每部电影的主演数量,根据数量使用pandas.cut()按照'1-2人','3-4人','5-6人','7-9人','10以上'
进行分类,然后计算每个分类的电影数量和烂片数量,即可知道各个分类的烂片情况。
  分析哪些演员的烂片较多,对'主演'字段拆分后进行纵向连接,然后根据主要进行分组计数,分别筛选出电影总数和烂片数,计算烂片占比,
去除电影较少的演员数据,排序后即可得到烂片占比排名。 

5.分析导演拍烂片的情况,分两步:第一步:计算各个导演的拍片数据和烂片数据,筛选出烂片较多的几个导演;第二部;对这几个导演的各个年份的影片数据进行分析,
包括电影数量,平均得分等

4.实现过程:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

import warnings
warnings.filterwarnings('ignore') 
# 不发出警告

from bokeh.io import output_notebook
output_notebook()
# 导入notebook绘图模块

from bokeh.plotting import figure,show
from bokeh.models import ColumnDataSource,HoverTool
# 导入图表绘制、图标展示模块
# 导入ColumnDataSource模块

import os
os.chdir(r'D:\IT\python数据分析师\项目11')

#数据读取
data = pd.read_excel('moviedata.xlsx')

#电影数据选取,去除空值
data1 = data[['电影名称','豆瓣评分','导演','主演','类型']]
data1.dropna(inplace = True)

#绘制直方图
data1.hist(figsize = (12,3),color = 'navy',alpha = 0.6,bins = 30,edgecolor = 'black')
plt.xlim([2,10])
plt.grid(linestyle='--')
plt.title('豆瓣评分数据分布-直方图')

#绘制箱型图
data1[['豆瓣评分']].plot.box(vert =False, figsize = (12,3),title = '豆瓣评分数据分布-箱型图')
plt.grid(linestyle = '--')
plt.xlim([2,10])
#导入stats 模块做正太性检验
from scipy import stats

u = data1['豆瓣评分'].mean()  #评分均值
std = data1['豆瓣评分'].std()  #评分标准差
q1 = data1['豆瓣评分'].quantile(q=0.25) #4/1分位
stats.kstest(data1['豆瓣评分'],'norm',(u,std))  #ks检验
print('P值7.146大于0.05,评分数据为正太分布.')

data_lp = data1[data1[
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值