上映 10 天,票房就突破 10 亿的《海王》真的有那么好看?
出品:CSDN(ID:CSDNnews)
写在前面
本文将主要通过Python加上一些数据分析,来证明《海王》好看。
《海王》一部电影带你重温《驯龙高手》《变形金刚》《星球大战》《星河战队》《铁血战士》《安德的游戏》《异形》可能还借鉴了对手的《钢铁侠》与《黑豹》剧情,再稍稍带一点《大鱼海棠》的味道,配上一丢丢温子仁式恐怖片套路,优秀的商业片,应该是DC年度最佳了。温子仁,优秀的集大成者。
上映 10 天,票房就达到了 10 亿。
在做数据分析之前,我们需要先对数据做清洗,将数据处理到最佳
读取数据,读取数据的时候记住,需要把header=None然后增加names
# 读取数据
def get_data():
df = pd.read_csv("haiwang.csv",sep=",",header=None,names=["nickName","cityName","content","approve","reply","startTime","avatarurl","score"],encoding="utf-8")
return df
清洗数据
查看数据是否有重复,采用drop_duplicates删除数据
删除数据之后,需要重置索引 reset_index
处理时间字段为datetime类型
增加一个字段为content_length查阅用户评论数量
# 清洗数据
def clean_data():
df = get_data()
has_copy = any(df.duplicated())
data_duplicated = df.duplicated().value_counts()
#print(data_duplicated) # 查看有多少数据是重复的
data = df.drop_duplicates(keep="first") # 删掉重复值
data = data.reset_index(drop=True) # 重置索引
data["startTime"] = pd.to_datetime(data["startTime"])
data["content_length"] = data["content"].apply(len)
# print(data.isnull().any()) 判断空值
# print(data[data.isnull().values == True])
# print(data[data.nickName=="."])
return data
查看所有数据情况
点赞的最高数目是2783 非常高了,但是平均值才0.25 可见,猫眼上人们并不是很喜欢点赞。回复数最高的才 43 可以说非常低了。
《海王》50%以上的人给了5分,肯定是很好看了。
看一下点赞最高的一些数据
“幻影XL”获得了最多的点赞,可以看一下他的评论内容。恩,写的确实不错,夸了一下导演,这个地方出现一点小的疏漏,我看到猫眼点赞最高的,我竟然没有抓取到数据,应该是给遗漏掉了,疏忽啊!
点赞排名
回复排名
# 查看数据基本情况
def analysis1():
data = clean_data()
print(data.describe())
# 删除.
# need_delete = data[data["nickName"]=="."]
data = data[~(data['nickName']==".")]
# data = data[~data['nickName'].isin(["."])]
# data.drop(need_delete,axis=1,inplace=True)
print(data["nickName"].describe())
print(data["cityName"].describe())
查看nickName的描述,发现竟然有个“.” ,需要把数据过滤掉,观影此处最多的城市是北京。
去除 “.” 数据的办法是 data = data[~(data['nickName']==".")]
count 57838
unique 55934
top qzuser
freq 57
Name: nickName, dtype: object
看一下qzuser这个人发了57条都是啥?
这位老铁还真的发了很多,一个劲的夸这个电影。
看评分
5分遥遥领先,周末的票已经买好,准备去看啦~
图表的实现用的是pychats,官方文档详见:http://pyecharts.org/#/zh-cn/prepare。
你可以去查阅文档,看一下详细的参数设置:
# 分析打分score情况
def analysis2():
data = clean_data()
grouped = data.groupby(by="score")["nickName"].size()
grouped = grouped.sort_values(ascending=False)
index = grouped.index
values = grouped.values
# 柱状图
bar = Bar("柱状图",title_pos="left",width=240)
bar.add("",index,values,is_label_show=True,is_legend_show=True,mark_line=["min","max"])
# Pie图
pie = Pie("饼图",title_pos="right",width=240)
pie.add("",index,values,radius=[45,65],center=[70,50],is_label_show=True,legend_pos="90%",legend_orient= "vertical")
grid = Grid(page_title="《海王》评分详情",width=1200,height=500)
grid.add(bar,grid_right="50%")
grid.add(pie, grid_left="70%")
grid.render("html/score.html")
print(data)
print(data[data["score"]==0])
看评语
def analysis3():
data = clean_data()
sort_data = data.sort_values(by="content_length",ascending=False)
print(sort_data.head(10)["content"])
节选几个,可以看看,顺便我还可以学习一下语文:
剧情和特效在科幻片中的精彩佳作。剧情延续着海神波塞冬用的玄铁打造的三叉戟铺开,影片中的海王的身世让力量成为了传奇,他有其它亚特兰蒂斯人不具备的亚特兰王的能力。海王在漫画中和其他很多英雄不一样的是,他并不反感杀戮,甚至有些渴望鲜血,这使得他在外型和性格上很难讨喜。温子仁对海王的性格做了一定程度上的改编,弱化了他的残忍,突出了他自卑的性格。整部《海王》表面看上去是一场王位争夺战,实际是亚瑟战胜自卑的成长史,而获得三叉戟就是他性格极为重要的转折点。
“温子仁真的厉害,在这部电影的镜头上和音效上真的是下了功夫,影片中适时响起的音效结合画面,很加分,影片大的方向来看是一部英雄成长史,有主角的披荆斩棘也有活泼温情, 擅长拍恐怖惊悚题材的他,在有些镜头的处理上能读到惊悚的味道,用最擅长的恐怖元素牢牢把握住观众的注意力,但点到为止没破坏电影的整体氛围,度把握的很不错 ,DC这次请温子仁操刀算是做对了一件事,而且海底世界的特效也相当给力,故事剧情上有几个点的设计很灵性,我觉得比毒液好看,因为毒液前面杀人的惊悚画面吓到我了,当然这部电影不是没有缺点,比如有几个地方我觉得节奏进程过快,剧情套路容易被猜中等等,但毕竟放眼整部影片来看,我给出四个字——瑕不掩瑜”
特效还可以的啦,但是剧情真的细碎,就本人而言槽点满满,起因在于海网的母亲因为生下海王而死,也没在海王小时候就派人弄死他,之后奥姆因为陆地人伏击他们决定发起战争(也有可能是奥姆的阴谋,但是海底人被各种残害是事实)结果眉拉,作为奥姆的青梅竹马就背叛奥姆了,就去找海王了,也不知道怎么一牵手,一拥抱,就擦起了爱情的火花(很多人说女主超级美,我看到了寡姐的影子,一头红发,犀利的眼神,个人感觉像寡姐的山寨)然后海王就找到了三叉戟,开启了主角光环之嘴炮无敌,拿到三叉戟,噼里啪啦的先弄死一堆海族人,然后成了海族人的王,奥姆被绿了,王位被抢。海王还说我是海洋的领主,你怕不是翻译官的头头。海族人也凄惨,打不过啊。
先说优点特效很足!特效很足!特效很足!剧情全程没有挖坑。但是不知道为什么!看得不过瘾感觉就跟一般,男女主角爱得莫名其妙,感觉亚特兰蒂斯的女人都有一个特点:喜欢陆地上的男人,不喜欢本土的。挺同情海里的男人的,自己未婚妻和陆地上的男人跑了,还生了个儿子。把老婆抢回来后不是宠爱,而是生完孩子女儿后,拿去祭献给丑陋的退化的海怪???女儿长大后上陆地又爱上了同母异父的哥哥???背叛得莫名其妙。最后男主拿到了自己的武器不是因为自己有多勇敢多牛逼,而是因为男主能和海里的动物对话???那我倒是奇怪了海里的动物怎么听得懂英语。离题了就回来,有点钻牛角尖了。要我说海神三叉戟就是个大型信号扩散器,帮助扩散命令罢了。
看一下评论时间
对于《海王》我只获取了4天的数据,看一下大家都在什么时间进行评论吧,晚上10点以后写评论的比较多,估计是大家看完电影,回家没啥事情才开始写评论。
def analysis4():
data = clean_data()
# 获取时间
# 添加小时
data["hour"] = data["startTime"].dt.hour
data["startTime"] = data["startTime"].dt.date
need_date = data[["startTime","hour"]]
def get_hour_size(data):
hour_data = data.groupby(by="hour")["hour"].size().reset_index(name="count")
return hour_data
data = need_date.groupby(by="startTime").apply(get_hour_size)
data_reshape = data.pivot_table(index="startTime",columns="hour",values="count")
bar = Bar("分时评论分析",width =1200,height=600,title_pos ="center")
data_reshape.fillna(0,inplace=True)
print(data_reshape)
for index,row in data_reshape.T.iterrows():
print(data_reshape.index)
v1 = list(row.values)
bar.add(str(index)+"时",row.index,v1,is_legend_show=True,legend_pos="80%",legend_text_size=8)
bar.render("html/1.html")
粉丝分布
# 处理地名数据,解决坐标文件中找不到地名的问题
def handle(cities):
# 获取坐标文件中所有地名
data = None
with open(
'city_coordinates.json文件地址',
mode='r', encoding='utf-8') as f:
data = json.loads(f.read()) # 将str转换为json
# 循环判断处理
data_new = data.copy() # 拷贝所有地名数据
for city in set(cities): # 使用set去重
# 处理地名为空的数据
if city == '':
while city in cities:
cities.remove(city)
count = 0
for k in data.keys():
count += 1
if k == city:
break
if k.startswith(city):
# print(k, city)
data_new[city] = data[k]
break
if k.startswith(city[0:-1]) and len(city) >= 3:
data_new[city] = data[k]
break
# 处理不存在的地名
if count == len(data):
while city in cities:
cities.remove(city)
# 写入覆盖坐标文件
with open(
'city_coordinates.json文件地址',
mode='w', encoding='utf-8') as f:
f.write(json.dumps(data_new, ensure_ascii=False)) # 将json转换为str
def analysis6():
data = clean_data()
cities = list(data[~data["cityName"].isnull()]["cityName"].values)
handle(cities)
style = Style(
title_color='#fff',
title_pos='center',
width=1200,
height=600,
background_color='#404a59'
)
new_cities = Counter(cities).most_common()
geo = Geo("《海王》粉丝分布","数据来源:CSDN-梦想橡皮擦",**style.init_style)
attr, value = geo.cast(new_cities)
geo.add('', attr, value, visual_range=[0, 3500],visual_text_color='#fff', symbol_size=15,is_visualmap=True, is_piecewise=True, visual_split_number=10)
geo.render('粉丝位置分布-GEO.html')
词云图
import jieba.analyse
def analysis7():
data = clean_data()
contents = list(data["content"].values)
try:
jieba.analyse.set_stop_words('stopwords.txt')
tags = jieba.analyse.extract_tags(str(contents), topK=100, withWeight=True)
name = []
value = []
for v, n in tags:
# 权重是小数,为了凑整,乘了一万
name.append( v)
value.append( int(n * 10000))
wordcloud = WordCloud(width=1300, height=620)
wordcloud.add("", name, value, word_size_range=[20, 100])
wordcloud.render()
except:
print("错误")
全是好评啊,特效好看、剧情好看、DC、海王、温子仁、女主。大家可以约起了~~
作者简介:王乔喻,高职院校讲师,主要负责人工智能,前端全栈方向的授课。8年开发经验,后转型软件学院讲师。
声明:本文为作者个人投稿,版权归其所有。
本文仅代表作者独立观点,转载请联系原作者。
公开课预告
◆
文字识别
◆
主题:基于模板的文字识别结果结构化处理技术
时间:12月20日晚8点
入群福利:添加小助手微信cadnai2,回复:OCR,加入课程交流群。课程QA,PPT共享。
推荐阅读:
开源项目哪家强?Github年终各大排行榜超级盘点(内附开源项目学习资源)
@程序员,安全问题必须重视!
公开课报名 | 基于自定义模板的OCR结果的结构化处理技术
为什么公司宁愿花25K重新招人,也不愿花20K留住老员工?
Python 告诉你:熊市将去,牛市要来!
65% 的程序员竟都是自学成才?
Python 爬取爱奇艺腾讯视频 250,000 条数据分析为什么李诞不值得了?
点击“阅读原文”,打开APP 阅读更顺畅。
相关文章:

利用SMS OSD实现win2008操作系统的部署
我们知道SMS是一个强大的桌面操作系统,利用SMS可以实现对客户端的软件、硬件等数据的统计,还可以管理公司的资产等等。那么利用SMS OSD是否能部署出XP、win2003、win2008等操作系统呢?今天我们就来试试用SMS OSD来部署win2008操作系统&#x…

企业域名更换操作系列1:为什么要进行域名更换及更换需要注意事项
前段时间在公司讨论对现在域结构调整时,有提到希望能重新启一套域,将现在域内信息全部进行迁移,迁移完成后再把域名改为原域名,此问题从愿景上来看是不错的,因为这种方法虽然操作比较复杂,但是对于用户体验上来看,还是有一定的帮助…

html在页面上div绝对定位,html – 中心浮动div在绝对定位div内
我有这套html和CSS.我想要的是必须让小的小工具块向左浮动但是在绝对定位的小工具包装器内部居中.因此,小工具包装器绝对位于页面底部.它包含x个小工具,它们在包装器内部浮动.所有这些小工具应该在包装器中居中 – 这是可能的,如何……?这真是让我伤心….1not setno…

主角用计算机控制身体,国漫段子手:绝技,用计算机控制挖掘机炒菜
身为古神的叶辰从神境世界陨落到了苍蓝世界,这里百州千国林立,豪强争霸,叶辰在这个苍蓝世界呆了数百年,建立了庞大的势力。在百州千国,叶辰的存在一直都是一个传说。但是来自神境世界的力量慢慢地延伸到了苍蓝世界&…

2018热点总结:BERT最热,GANs最活跃,每20分钟就有一篇论文...
作者 | Ross Taylor 译者 | linstancy 整理 | Jane 出品 | AI科技大本营 【导读】本文的作者 Ross Taylor 和 Robert Stojnic 在今年一起启动了一个名为“Paper with Code”的项目,将 AI 领域的一些研究论文和论文开源代码结合展示,方便大家学习与研究…

android之android.intent.category.DEFAULT的用途和使用
1、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。 Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码: [java] view plaincopy print? Intent intent new Intent(this, B.class…

MS sql server和mysql中update多条数据的例子
1.MS sql server中使用动态的表名:declare tableName nvarchar(160)set tableName t_stat_alldeclare sql nvarchar(160)print tableNameset sqlselect count(*) from tableNameexec(sql)2.mysql的例子1语句update (select sc,tos,sum(click) as click,product,adp…

OpenGL编程轻松入门(四)
1. 曲面和曲线前面我们讲了如何绘制平面的图形,这一节我们学习如何绘制曲线和曲面。例10:绘制一个曲面,本程序使用二维求值器绘制一个曲面。本例中也有一些特殊效果的操作。#include <windows.h>#include <GL/GLAUX.h>#i…

计算机科学实验教学示范中心,校领导调研计算机科学与技术国家级实验教学示范中心...
4月29日,副校长朱廷珺在实验管理中负责人陪同下,深入计算机科学与技术国家级实验教学示范中心、轨道交通信息与控制国家级虚拟仿真实验教学中心开展实地调研。在计算机实验中心,朱廷珺实地调研了计算机基础实验室、计算机软件实验室、硬件专业…

中科创达孙力:不迷信 AI 算法,智能视觉如何转型升级?
作者 | 若名 出品 | AI科技大本营 近日,中科创达副总裁孙力在 Thunder World 2018 嵌入式 AI 人工智能技术大会上发表了主题演讲,主要分享了以下三方面内容: 视觉的传统技术和挑战 嵌入式视觉AI智能视觉 智能视觉赋能行业的智能化升级转型 …

单元测试与敏捷开发
单元测试与敏捷开发 转载请保留作者信息: 作者:88250 Blog:http:/blog.csdn.net/DL88250 MSN & Gmail & QQ:DL88250gmail.com 在要求项目要尽量快地实现的时候,质量与开发进度上会出现一定的矛盾,…

“AI明星”第四范式C轮融资超10亿元,估值约12亿美元
AI科技大本营消息,12 月 19 日,第四范式宣布完成 C 轮融资,融资金额超过 10 亿元,估值约 12 亿美元。此次投资引入了包括国新、启迪、保利、三峡、中信、农银、交银等战略投资,红杉中国继续追加投资。除了原有股东中国…

精灵图 html为什么会变大,[html] 第128天 精灵图和base64如何选择呢?
可参考https://www.cnblogs.com/wangqi2019/p/10498627.htmlCss Sprites(雪碧图或css精灵),是网页图片处理的一种方式,它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去,这样一来,当访问该页面时,载入的图…

组策略 从入门到精通(十)通过组策略进行软件分发和卸载
其实在前面windows server 2008的一些博文中,已经介绍了如何通过组策略进行软件的分发,在windows server 2003中有些无法完成的软件分发工作在windows server 2008中已经全部纠正了。http://zhengweiit.blog.51cto.com/1109863/291156 今天我们主要来探讨…

RedHatAS4.0-RAID技术
RedHatAS4.0-RAID技术

今晚8点直播 | 详解基于百度自定义模板的OCR结果结构化处理技术
随着行业的发展和技术的成熟,文字识别(OCR)目前已经应用到了多个行业中,比如物流行业快递包裹的分拣,金融行业的支票单据识别输入,交通领域中的车牌识别,以及日常生活中的卡证、票据识别等等。O…

电脑计算机科学型,电脑里附带的计算器有标准型和科学型二种,它 – 手机爱问...
2019-06-24如何用delphi7 0设计标准型计算器这是源代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, StdCtrls, ExtCtrls;type TForm1 class(TForm) Panel1: TPanel; Panel…

铜缆配线架的选择
我们现在考察一下为安装选择合适的铜缆配线架所必须考虑的因素。铜缆配线架一般分为经济型、中端或高端配线架。经济型配线架经济型配线架通常在结构上脆弱,性能不稳定交缺少技术支持或保证。配线架端接时一般会耗费较多的安装成本,没有电缆管理设备支持…

go6---slice切片
package main/* 切片Slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或全部 为引用类型 可以直接创建或从底层数组获取生成 使用len()获取元素个数,cap()获取容量 一般使用make()创建 如果多个slice…

TensorFlow支持Unicode,中文NLP终于省心了
整理 | 非主流出品 | AI科技大本营终于,TensorFlow 增加了对 Unicode 的支持。什么是 Unicode?Unicode 是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种…

C#:String.Format数字格式化输出
C#:String.Format数字格式化输出 inta 12345678; //格式为sring输出//Label1.Text string.Format("asdfadsf{0}adsfasdf",a);//Label2.Text "asdfadsf"a.ToString()"adsfasdf";//Label1.Text string.Format("asdfadsf{0:C}adsfasdf&…

OpenStack如何实现高可用集群介绍
OpenStack是目前基于开源的,一个非常流行的云管理平台项目。这个项目由几个主要的组件组合起来完成一些具体的工作。因此它的集群比较复杂,也有多种选择方式。OpenStack 作为一个类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service,…
accp8.0html作业,Accp8.0HTML标签
第一章1、HTML超文本标记语言2、网页3、网页头部4、网页标题5、网页主体6、DOCTYPE声明3种级别:(1)Strict 严格类型(2)Transitional过渡类型(3)Frameset框架类型7、网页摘要标签8、字符编码:gb2312简体中文ISO-885901纯英文big5繁体UTF-8国际通用编码9、…

向iOS越狱彻底说再见!
老牌第三方软件商店 Cydia 关闭在即,iPhone 越狱时代又见落日归途?作者 | 仲培艺出品 | CSDNCydia 线上商店是针对完成越狱的 iOS 设备的一种破解软件,在越狱过程中被装入到系统,为 iOS 设备提供第三方 App 的服务平台,…

ArrayList的subList方法
李说: ArrayList的subList方法获取到的是ArrayList的一段list,只是其中的一段视图。所以修改subList ,ArrayList同时会修改,因为本来就是同一个东西。 jdk文档中是这样说的: List<E> subList(int fromIndex, int toIndex) …

男孩子学计算机和学医哪个好,你认为学医好还是读211大学的电子信息好?
学医的好处。社会的地位和社会认可度较高。无可否认无论是在过去还是在将来,医生因为其救死扶伤的职业特点而被广泛大众所接受和认可。较高的社会地位会让你在将来的择偶、人际关系处理方面显得更有吸引力和话语权。工作稳定有保障。这点其实还是看题主的水平和实力…

Error Creating Control when creating a custom control
如果你在创建ASP.NET的Server Control 是遇到报错: "Error Creating Control" when creating a custom control 原因是 ToolboxData 元数据中的控件名称和控件的类(class)名不同,改为相同即可解决问题。转载于:https://www.cnblogs.com/DotNet…

精选180+Python开源项目,随你选!做项目何愁没代码
编辑 | Jane出品 | Python大本营每一位程序员,每天大部分时间都是在和代码打交道。但是对于广大的普通用户来说,最重要的不是代码,而是代码最终生成的应用程序。但是,每个项目都从头开始自己一行一行码代码,是非常不现…

八年级计算机网络公开课,计算机网络公开课教案.doc
计算机网络公开课教案公开课教案科目:计算机网络课题: 交换机配置文件备份与恢复知识目标:1、在本次课中要向学生传授交换机上传、下载服务器的安装和配置;2.学生学习交换机上传配置命令,完成交换机Flash内存中保存的配置文件上传…

Centos6.5升级系统自带gcc4.4.7到gcc4.8.0
下载 wget http://ftp.gnu.org/gnu/gcc/gcc-4.8.0/gcc-4.8.0.tar.bz2 解压 tar -xjvf gcc-4.8.0.tar.bz2 进入 cd gcc-4.8.0 下载所需软件( ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2 ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.…