影戏数据剖析—国产烂片深度揭秘

1读取数据,以“豆瓣评分”为标准,看看影戏评分散布,及烂片情况

其要求:

① 读取数据“movieda短片题材ta.xlsx去除缺失值

② 检查“豆瓣评分”数据散布,绘制直方图、箱型图

③ 判别“烂片标准”这里以上四分位数(该样本中一切数值由小到大排列后第25%数字)评分为“烂片标准”

④ 挑选出烂片数据,并做排名,找到TOP20

四季题材e>impor作文题材学生题材视频题材tnumpiasnpimportpandaaspdimportmatplotlib.pyplotaspltimportwarnwarnings.filterwarn\’ignore\’#不发出警告 frombokeh.ioimportoutput_notebookoutput_notebook#导入notebook作图模块 frombokeh.plotimportfigure,showfrombokeh.modelimportColumnDataSource瀑布题材,HoverTool#导入图表绘制、图标展示模块 #导入ColumnDataSourc模块 #检查数据,数据洗濯 importosos.chdirr\’E:Python数据剖析项目中国产烂片深度揭秘\’#创立任务途径 df=pd.read_excel\’moviedata.xlsx\’df=df[df[\’豆瓣评分\’]>0]print\’开端洗濯后数据量为%i条\’%lendf#读取数据 #删除“豆瓣评分”小于即是0值 #检查豆瓣评分情况 fig=plt.figurfigsiz=10,6plt.subplots_adjusthspace=0.2#创立作图空间 ax1=fig.add_subplot2,1,1df[\’豆瓣评分\’].plot.histstacked=True,bins=50,color=\’green\’,alpha=0.5,grid=Truplt.ylim[0,150]plt.titl\’豆瓣评分数据散布-直方图\’#绘制直方图 ax2=fig.add_subplot2,1,2color=dictboxes=\’DarkGreen\’,whiskers=\’DarkOrange\’,medians=\’DarkBlue\’,caps=\’Gray\’df[\’豆瓣评分\’].plot.boxvert=False,grid=True,color=colorplt.titl\’豆瓣评分数据散布-箱型图\’#绘制箱型图 df[\’豆瓣评分\’].describ

#判别是否契合正态分布 fromscipiimportstat#导入有关模块 u=df[\'豆瓣评分\'].mean#盘算均值 std=df[\'豆瓣评分\'].std#盘算规范差 stats.kstestdf[\'豆瓣评分\'],\'norm\',u,std#这里p值大于0.05为正态分布 #得出结论:以样本数据上四分位数为烂片评判标准 4.3分 #挑选出烂片数据,并做排名,找到TOP20data_lp=df[df[\'豆瓣评分\']<4.3].reset_indexprint\'数据重新整理后,得到烂片数据量为%i条\'%lendata_lp#挑选烂片数据 lp_影视题材top20=data_lp[[\'影戏称号\',\'豆瓣评分\',\'导演\',\'主演\']].sort_valuby=\'豆瓣评分\'.iloc[:20].reset_indexdellp_top20[\'index\']lp_top20#检查烂片top20

烂片评价标准:4.3分,重新整理后烂片数据大概546条

2啥题材的影戏烂片最多?

其要求:

① 依照“不同类型”字段分类,挑选差别影戏属于啥题材

② 重新整理数据,依照“题材”汇总,检查差别题材的烂片比例,并选取TOP20

③ 将得到题材烂片比例TOP20制造散点图 横坐标为“题材”不同类型,纵坐标为烂片比例,点巨细为样本数量

提醒:

① 删除“不同类型”字段空值的数据

② 因为一个电影“不同类型”会有多个,这里需求将一个电影每个“不同类型”都识别出来,统计某个题材时都需要计算,比如:

假如一个电影的不同类型为:悲剧/恋爱”则在盘算“悲剧”恋爱”题材的烂片比例时,都需求将该电影算上

③ 留意不同类型字段中,要删除空格字符

④ bokeh图设置点大小,这里经过 开方减小数据相差 size=count**0.5*系数

#挑选出一切题材不同类型,检查差别题材烂片比例 typelst=[]foriindf[df[\'不同类型\'].notnul][\'不同类型\'].str.replac\'\',\'\'.str.split\'/\':typelst.extendi#取出来一切影戏的不同类型”并重新整理成列表 #留意这里要删除“不同类型”中的空格字符 typelst=listsettypelstprinttypelst#列表去重 #创立函数,检查差别题材的烂片比例 #这里要删除“不同类型”字段空值的数据 lst_type_lp=[]#创立空字典、空列表 df_type=df[df[\'不同类型\'].notnul][[\'影戏称号\',\'豆瓣评分\',\'不同类型\']]#挑选数据 deff1data,typei:dic_type_lp={}datai=data[data[\'不同类型\'].str.containtypei]#挑选数据 lp_pre_i=lendatai[datai[\'豆瓣评分\']<4.3]/lendatai#盘算该题材烂片比例 dic_type_lp[\'typename\']=typeidic_type_lp[\'typecount\']=lendataidic_type_lp[\'type_lp_pre\']=lp_pre_i#将后果记载进字典中,包罗题材不同类型、烂片比例、样本数据数目 returndic_type_lpforiintypelst:dici=f1df_type,ilst_type_lp.appenddici#依照题材遍历数据,得到差别题材的烂片比例 df_type_lp=pd.DataFramlst_type_lptype_lp_top20=df_type_lp.sort_valuby=\'type_lp_pre\',ascend=Fals.iloc[:20]type_lp_top20#挑选出烂片比例TOP题材不同类型 #4bokeh制图 type_lp_top20[\'size\']=type_lp_top20[\'typecount\']**0.5*2#设置点大小,这里经过开方减小数据相差 sourc=ColumnDataSourcdata=type_lp_top20#创立数据 lst_type=type_lp_top20[\'typename\'].tolist#设置横坐标listhover=HoverTooltooltips=["数据量","@typecount","烂片比例","@type_lp_pre"]#设置标签信息显示其他内容 p=figurx_range=lst_type,plot_width=900,plot_height=350,title="差别影戏题材烂片比例",tools=[hover,\'reset,xwheel_zoom,pan,crosshair,box_select\']#全面构建作图空间 p.circlx=\'typename\',y=\'type_lp_pre\',sourc=source,size=\'size\',line_color=\'black\',line_dash=[6,4],f小说题材ill_color=\'red\',fill_alpha=0.7#绘制散点图 p.xgrid.grid_line_dash=[10,4]p.ygrid.grid_line_dash=[10,4]#设置其他参数 showp

3和啥国度合拍更能够发生烂片?

其要求:

① 依照“制片国度/地域”字段分类,挑选差别影戏的制片地

② 重新整理数据,依照“题材”汇总,检查差别题材的烂片比例

提醒:

① 删除“制片国度/地域”字段空值的数据

② 删除“制片国度/地域”中不包括“中国台湾”数据

③ 制片地删除“中国台湾”中国”台湾”香港”等噪音数据

④ 挑选协作影戏大于即是3部以上的国度

#挑选影戏制片地;#和啥国度合拍更能够产物烂片 df_loc=df[[\'影戏称号\',\'制片国度/地域\',\'豆瓣评分\']][df[\'制片国度/地域\'].notnul]df_loc=df_loc[df_loc[\'制片国度/地域\'].str.contain\'中国台湾\']#挑选数据 loclst=[]foriindf_loc[\'制片国度/地域\'].str.replac\'\',\'\'.str.split\'/\':loclst.extendi#取出来一切影戏的制片地,并重新整理成列表;#留意这里要删除“制片国度/地域”中的空格字符 loclst=listsetloclstloclst.remov\'中国台湾\'loclst.remov\'中国\'loclst.remov\'台湾\'loclst.remov\'香港\'printloclst#列表去重 #创立函数,检查差别制片地的烂片比例 lst_loc_lp=[]#创立空列表 deff2data,loci:dic_loc_lp={}datai=data[data[\'制片国度/地域\'].str.containloci]#挑选数据 lp_pre_i=lendatai[datai[\'豆瓣评分\']<4.3]/lendatai#盘算该制片地烂片比例 dic_loc_lp[\'loc\']=locidic_loc_lp[\'loccount\']=lendataidic_loc_lp[\'loc_lp_pre\']=lp_pre_i#将后果记载进字典中,包罗制片地、烂片比例、样本数据数目 returndic_loc_lpforiinloclst:dici=f2df_loc,ilst_loc_lp.appenddici#依照题材遍历数据,得到差别制片地的烂片比例 df_loc_lp=pd.DataFramlst_loc_lpdf_loc_lp=df_loc_lp[df_loc_lp[\'loccount\']>=3]#挑选协作影戏大于即是3部以上的国度 loc_lp_top20=df_loc_lp.sort_valuby=\'loc_lp_pre\',ascend=Fals.iloc[:20]loc_lp_top20#挑选出烂片比例TOP制片地 #得出结论:信息综合来看,竟然和西欧协作更能够发生烂片 

4卡司数量是否和烂片有关?

其要求

① 盘算每部电影的主演人数

② 依照主演人数分类,并统计烂片率(分类:\’1-2人\’,\’3-4人\’,\’5-6人\’,\’7-9人\’,\’10以上\’

③ 检查烂片比例最高的演员TOP20

提醒:

① 经过“主演”字段内做排列来盘算主演人数

② 需求辨别统计差别主演人数的影戏数目及烂片数量,再盘算烂片比例

③ 这里也可以依照明星再查看一下他烂片率,比方黄晓明、甄子丹、刘亦菲、范冰冰等

#卡司数目与烂片的之间的关系 #盘算每部电影的主演人数,并统计烂片率 #分类:\'1-2人\',\'3-4人\',\'5-6人\',\'7-9人\',\'10以上\'df[\'主演人数\']=df[\'主演\'].str.split\'/\'.str.len#盘算主演人数 df_leadrole1=df[[\'主演人数\',\'豆瓣评分\']].groupbi\'主演人数\'.countdf_leadrole2=df[[\'主演人数\',\'豆瓣评分\']][df[\'豆瓣评分\']<4.3].groupbi\'主演人数\'.count#依照主演人数分组,辨别统计影戏数目及烂片数量 df_leadrole_pr=pd.mergdf_leadrole1,df_leadrole2,left_index=True,right_index=Truedf_leadrole_pre.column=[\'影戏数目\',\'烂片数量\']#依照主演人数统计烂片比例 df_leadrole_pre.reset_indexinplac=Truedf_leadrole_pre[\'主演人数分类\']=pd.cutdf_leadrole_pre[\'主演人数\'],[0,2,4,6,9,50],label=[\'1-2人\',\'3-4人\',\'5-6人\',\'7-9人\',\'10人及以上\']df_leadrole_pre2=df_leadrole_pre[[\'主演人数分类\',\'影戏数目\',\'烂片数量\']].groupbi\'主演人数分类\'.sumdf_leadrole_pre2[\'烂片比例\']=df_leadrole_pre2[\'烂片数量\']/df_leadrole_pre2[\'影戏数目\']df_leadrole_pre2#依照主演人数分类后再统计 #分类:\'1-2人\',\'3-4人\',\'5-6人\',\'7-9人\',\'10以上\'#差别主演的烂片比例#挑选主演;这里用烂片数据来筛选,不必尽数据 df_role1=df[df[\'豆瓣评分\']<4.3&df[\'主演\'].notnul]df_role2=df[df[\'主演\'].notnul]leadrolelst=[]foriindf_role1[\'主演\'][df_role1[\'主演\'].notnul].str.replac\'\',\'\'.str.split\'/\':leadrolelst.extendi#取出来一切影戏的主演,并重新整理成列表;留意这里要删除“主演”中的空格字符 leadrolelst=listsetleadrolelstprint\'挑选后的主演演员人数为%i人\'%lenleadrolelstprintleadrolelst#列表去重 #检查差别主演的烂片比例 #这里去除掉拍过3次电影以下的演员 lst_role_lp=[]#创立空字典、空列表 foriinleadrolelst:datai=df_role2[df_role2[\'主演\'].str.containi]iflendatai>2:dic_role_lp={}lp_pre_i=lendatai[datai[\'豆瓣评分\']<4.3]/lendatai#盘算该主演烂片比例 dic_role_lp[\'role\']=idic_role_lp[\'rolecount\']=lendataidic_role_lp[\'role_lp_pre\']=lp_pre_ilst_role_lp.appenddic_role_lp#依照题材遍历数据,得到差别主演的烂片比例 df_role_lp=pd.DataFramlst_role_lprole_lp_top20=df_role_lp.sort_valuby=\'role_lp_pre\',ascend=Fals.iloc[:20]role_lp_top20#挑选出烂片比例TOP20演员 #检查特定演员的烂片率 printdf_role_lp[df_role_lp[\'role\']==\'范冰冰\']df_role2[[\'影戏称号\',\'主演\',\'豆瓣评分\']][df_role2[\'主演\'].str.contain\'范冰冰\']

5差别导演每一年影戏产量状况怎样

其要求:

① 经过“上映日期”挑选出每个电影的上映年份

② 检查差别导演的烂片比例、这里去除掉拍过10次电影以下的导演

③ 检查差别导演每一年的影戏产量制造散点图 横坐标为年份,纵坐标为每一年影戏均匀分,点巨细该年电影数量

**用bokeh制图

**横坐标限制为2007-2017年

**绘制散点图就可要用产出过烂片的导演数据

提醒:

① 留意要删除“上映日期”中的空格字符

② 绘制图表时,离开树立数据绘制

#影戏上映工夫重新整理 #影戏“上映日期”字段整理 工夫序列 #年份限制为2007-2017年 df_year=df[[\'影戏称号\',\'导演\',\'豆瓣评分\',\'上映日期\']][df[\'导演\'].notnul]df_year=df_year[df_year[\'上映日期\'].notnul]df_year[\'上映日期\']=df_year[\'上映日期\'].str.replac\'\',\'\'#删除空格字符 df_year[\'year\']=df_year[\'上映日期\'].str[:4]#辨认年份 df_year=df_year[df_year[\'year\'].str[0]==\'2\']#去除错误的数据 df_year[\'year\']=df_year[\'year\'].astypnp.int#年份设置为整型 #挑选导演 directorlst=[]foriindf_year[\'导演\'].str.replac\'\',\'\'.str.split\'/\':directorlst.extendi#取出来一切影戏的主演,并重新整理成列表;留意这里要删除“主演”中的空格字符 directorlst=listsetdirectorlstprint\'挑选后的导演人数为%i人\'%lendirectorlstprintdirectorlst#列表去重 #检查差别导演的烂片比例 #这里去除掉拍过10次电影以下的导演 #年份限制为2007-2017年 lst_dir_lp=[]#创立空字典、空列表 foriindirectorlst:datai=df_year[df_year[\'导演\'].str.containi]iflendatai>10:dic_dir_lp={}lp_pre_i=lendatai[datai[\'豆瓣评分\']<4.3]/lendatai#盘算该主演烂片比例 dic_dir_lp[\'dir\']=idic_dir_lp[\'dircount\']=lendataidic_dir_lp[\'dir_lp_pre\']=lp_pre_ilst_dir_lp.appenddic_dir_lp#依照题材遍历数据,得到差别主演的烂片比例 df_dir_lp=pd.DataFramlst_dir_lp#检查烂片比例 #差别导演的影戏产量及电影均分;盘算差别导演每一年的影戏产量及电影均分;这里只看产出过烂片的导演数据 deff3data,diri:datai=data[data[\'导演\'].str.containdiri]#挑选数据 data_moviecount=datai[[\'year\',\'影戏称号\']].groupbi\'year\'.countdata_scoremean=datai[[\'year\',\'豆瓣评分\']].groupbi\'year\'.meandf_i=pd.mergdata_moviecount,data_scoremean,left_index=True,right_index=Truedf_i.column=[\'count\',\'score\']df_i[\'size\']=df_i[\'count\']*5returndf_idirdata1=f3df_year,\'王晶\'dirdata2=f3df_year,\'周伟\'dirdata3=f3df_year,\'徐克\'dirdata4=f3df_year,\'邓衍成\'#辨别得到差别导演的数据 #bokeh制图 frombokeh.models.annotimportBoxA nnot#导入BoxA nnot模块 hover=HoverTooltooltips=["该年电影均分","@score","该年电影产量","@count"]#设置标签信息显示其他内容 p=figurplot_width=900,plot_height=500,title="差别导演每一年的影戏产量及电影均分",tools=[hover,\'reset,xwheel_zoom,pan,crosshair,box_select\']#全面构建作图空间 source1=ColumnDataSourcdirdata1p.circlx=\'year\',y=\'score\',sourc=source1,s=\'size\',legend="王晶",fill_color=\'olive\',fill_alpha=0.7,line_color=None#绘制散点图1source2=ColumnDataSourcdirdata2p.circlx=\'year\',y=\'score\',sourc=source2,s=\'size\',legend="周伟",fill_color=\'blue\',fill_alpha=0.7,line_color=None#绘制散点图2source3=ColumnDataSourcdirdata3p.circlx=\'year\',y=\'score\',sourc=source3,s=\'size\',legend="徐克",fill_color=\'green\',fill_alpha=0.7,line_color=None#绘制散点图3source4=ColumnDataSourcdirdata4p.circlx=\'year\',y=\'score\',sourc=source4,s=\'size\',legend="邓衍成",fill_color=\'gray\',fill_alpha=0.7,line_color=None#绘制散点图4bg=BoxA nnottop=4.4,fill_alpha=0.1,fill_color=\'red\'p.add_layoutbg#绘制烂片分隔区域 p.xgrid.grid_line_dash=[10,4]p.ygrid.grid_line_dash=[10,4]p.legend.loc="top_right"#设置其他参数 showp

原文链接:https://blog.csdn.net/yangyuying_1219/article/details/114230063?ops_request_misc=%257B%2522request%255Fid%2522%253A %2522166856496116782429764990%2522%252C%2522scm%2522%253A %252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166856496116782429764990&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-16-114230063-null-null.nonecase&utm_term=%E9%A 2%98%E6%9D%90

未经允许不得转载:题材网 » 影戏数据剖析—国产烂片深度揭秘

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏