会展网站模板,广州石井做网站,微信运营简历,做移动网站快速排名壹猫眼Top100电影数据分析概述从这一节开始#xff0c;我们就综合利用已学到的一些分析技术来尝试做一些比较复杂的实际数据分析项目。在这些实际的项目案例中#xff0c;我们将会看到一个完整的数据分析流程#xff1a;数据清理——数据分析——数据可视化(即数据解释)。最… 壹猫眼Top100电影数据分析概述从这一节开始我们就综合利用已学到的一些分析技术来尝试做一些比较复杂的实际数据分析项目。在这些实际的项目案例中我们将会看到一个完整的数据分析流程数据清理——数据分析——数据可视化(即数据解释)。最终使得用户能够一眼看清楚一批复杂数据中所蕴含的知识。本节所要讲的一个案例是对利用爬虫手段从猫眼网站所爬下来的Top100的电影数据展开分析。在爬下来的电影数据集中最重要的数据包括影片的主演、影片的上映时间、制作国、影评分等。而我们想知道的是在这批数据中主要有哪些国家制作了这些脍炙人口的影片、最著名的演员都有哪些、不同的年份或不同的月份下影片的上映情况、不同影评分下的影片数量分布情况等信息。通过这些信息我们就知道哪些国家发型的大片最多哪些年份上映的好看影片最多通常都会集中在哪些月份进行集中上映同时我们还能知道最受观众喜爱的演员都有哪些。最后我们还能够清楚地看到在这100部影片中大部分影片的一个打分情况。现在就让我们来具体分析一下这批影片数据。关于影片数据集如何获取的大家可以利用我们所介绍过的爬虫技术从猫眼网站进行爬取这里就不再单独介绍。此外我们在本项目中采用了百度开发出来的pyecharts库来开展可视化操作它在当前项目中要比Matplotlib库更加好用尤其是在折线图的展示上。如果没有安装过这个可视化库的可以参考一下下面这个网址所提供的一个安装思路https://blog.csdn.net/zqs305082800/article/details/84581299另外一个库collections则可用于快速统计不同数据出现的次数。非常方便。感兴趣的小伙伴们可以考虑对pyecharts库和collections库做一个深入了解必将对你的数据分析工作有莫大帮助。PS本项目案例中的代码都是成段出现并非是连一片出现的这是因为我在测试的过程中发现若把这些片段的代码集中到一起最终只能展示出最后的那个分析结论的可视化效果图其余分析结论的可视化展示就会失效。故而我这里选择了分段来讲解。再有一点需要说明的是本项目案例中有些处理逻辑参考借鉴了一丢丢前辈们的有益思路。因此如果你觉得这里的分析处理逻辑似曾相识请不要过于惊讶哈哈哈但我会尽可能地把我对这个项目分析案例的理解以及对这些理解的实现展示地更透彻一些贰展示数据集的基本信息首先我们将数据导入到代码中并查看一下这批数据集的基本信息以及一些基本的统计量分析结果。对于影评分我们可以查看它的平均分、最大值、最小值等。然后我们就开始对数据集中的一些数据做进一步的分析处理并以可视化的形式展示给大家。这里所要分析的数据就是影片的上映日期先看看不同年份下所上映的影片数的一个分布情形以折线图进行展示import pandas as pdimport numpy as npfrom pyecharts.charts import Line,Bar,Pieimport pyecharts.options as optsfrom collections import Counter#设置字段对齐pd.set_option(display.unicode.ambiguous_as_wide, True)pd.set_option(display.unicode.east_asian_width, True)#设置最大显示列数与显示宽度以防止出现不必要的换行输出现象pd.set_option(display.max_columns,500)pd.set_option(display.width,1000)data pd.read_csv(maoyan.csv,encodingutf-8)print(前10部影片信息)print(data.head(10))#查看数据基本信息print(查看影片数据基本信息)print(data.info())#查看数据集中的基本统计分析print(查看影片数据基本统计结果)print(data.describe())#获得电影的平均分print(获得所有影片的平均分)print(data[star].mean())#提取日期的年份与月份这里没有采用Pandas库中的to_datatime()#主要是考虑到原始数据中的日期没有包含天只有年和月#且采用字符串分割操作更显得方便些data[year] data[pub_time].str.split(-).str[0]data[month] data[pub_time].str.split(-).str[1]year data.groupby(year)[year].count()attr_year list(year.index)num_year list(year)#以下是pyecharts库中绘制折线图的基本套路#先声明一个Line对象然后添加X轴坐标#然后添加y轴坐标如果需要给y轴坐标起名字的话可添加名字#利用is_smooth可以设置折现是光滑曲线还是不光滑的折线#最后设置一下折线图的一些全局属性比如标题位置是居中还是#左对齐或右对齐等line ( Line() .add_xaxis(attr_year) .add_yaxis(,num_year,is_smoothTrue) .set_global_opts(title_optsopts.TitleOpts(,pos_leftcenter)) )#下面这一行代码让折线图在Jupyter Notebook上显示的#一条必备命令缺少它我们所绘制的折线图#将不会在Notebook上显示。line.render_notebook()其运行结果截图如下从这个折线图上我们不难看出这么一个信息在1993年到2013年这11年间上映的大片普遍比较多(个别年份除外)。当然这个讯息的背后还能进一步得出什么样的结论比如是否可以进一步判定在这11年间内大片的行情普遍比较火等这就要靠更专业的人士结合他们所处行业的综合信息来作出这方面的判断了。叁查看不同月份上映的影片数通常电影的上映时间是很有讲究的比如一些大片会选在黄金周来上映因为那个时期观影人数会更多再比如影片的排挡也会综合考虑不同月份下的行情。因此我们可以对这批影片数据做进一步分析看看通常在哪些月份上映的影片数最多month data.groupby(month)[month].count()attr_month list(month.index)v_month list(month)#以下是利用pyecharts库制作柱状图的基本思路bar ( Bar()#声明一个Bar对象 .add_xaxis(attr_month)#添加X坐标 .add_yaxis(,v_month)#添加y坐标值也可以再加个标题 .set_global_opts(title_optsopts.TitleOpts(,pos_leftcenter))#设置好柱状图的全局信息包括图标题、位置等 )#这一步非常重要千万不能省略否则#无法在NoteBook上显示bar.render_notebook()其运行结果如下从这个柱状图来看我们可以看出一个大体的趋势步入到下半年之后影片通常都会扎堆放映了。这可以被电影从业人员视作是一个影片档期排挡规律。比如我们国家每年都会有一个贺岁档我想大概也是因为这个原因吧。至于为什么会有这么一个神奇的规律这就需要深度分析人们的社会行为、消费习惯规律等数据才能得出一个准确答案而不是从这一批数据中就能得到的。肆影片发行国分布情况分析弄明白影片上映时间的规律之后我们接下来就会想着这些最受欢迎的影片大多来源于哪些国家。通过这样的分析我们就可以看出当前哪些国家制作的影片最受欢迎或者还可以这么说哪些国家在制作这种受欢迎大片上的实力最牛掰。#本段代码的作用是分析出不同国家所制作的影片数的一个占比情况def get_country(country): #首先要做的就是提取所有的国家信息 country_str if country.find(() 0 or country.find(中国香港) 0 : #这里的条件判断并不特别严谨是因为满足上述 #条件的第一个判断也可能是来自国外的影片比如 #数据集中的泰坦尼克号这部影片就来自国外但我们会依据 #这里的判断而将其归类于中国电影 #获取国家这个API实际上还需要做进一步的分析 #但就目前数据集中有限的信息我们很难做出最完美的判断。 #因此这就说明采集数据时保证数据信息的完整性 #是多么的重要。 country_str 中国 elif country.find(法国戛纳) 0: country_str 法国 else: country_str country.split(()[1].strip()) return country_strdata[country] data[pub_time].map(get_country)country data.groupby(country)[country].count()attr_country list(country.index)num_country list(country)#以下是pyecharts库绘制饼状图的基本思路pie Pie()#声明一个Pie图对象pie.add( 国家,#设置饼状图名称 #设置一下饼状图中要显示的数据 [list(z) for z in zip(attr_country ,num_country )], # center为圆心坐标 center[20%, 50%], # 60为内半径80为外半径 radius[60, 80],) #设置饼状图的全局属性包括标题、位置信息等pie.set_global_opts( title_optsopts.TitleOpts(,pos_leftleft), legend_optsopts.LegendOpts( type_scroll, pos_top200%, pos_left80%, orientvertical ), )# 设置显示百分比pie.set_series_opts( tooltip_optsopts.TooltipOpts( triggeritem, formatter{a} {b}: {c} ({d}%) )) #下面这行代码是确保饼状图能够在Notebook上显示的必备代码pie.render_notebook()其运行结果如下从这个国家分布的饼状图上来看中美两国所发布的大片受到的喜爱程度最高尤其是中国。这个原因我想主要还是在于发布这个猫眼Top100的网站里参与影片评分的人绝大多数还是以中国人为主。这里边多少有一些爱国情怀的作用哈哈哈。壹小结这一节我们简单地分析了一下猫眼Top100电影数据集中的一些基本信息包括影片上映时间规律、影片发行国规律等信息。在这些分析过程中我们利用了所学习到的分组分析、基本统计分析等分析技术。在分析影片发行国规律时我们还对数据做了比较复杂的处理这属于数据清理的范畴。最后我们利用可视化的形式展示了我们所分析出来的结论并对这个结论做了一些基本的解释。因此我们可以从这个实际的小项目中就能够完整地看到数据分析的三个主要环节——数据清理、数据分析、分析结果解释等。当然对于这批数据集的分析我们还没结束还有一些重要的信息有待提取这就留待下一节的项目案例分享中继续为大家分享。本节的数据分析项目案例分享就到此为止谢谢大家我们下一节的分享中不见不散