60行python代码分析2018互联网大事件
2018年是改革开放四十周年,也是互联网发展的重要一年。经历了区块链,人工智能潮的互联网行业逐渐迎来了冬天。这一年里有无数的事件发生着,正好学了python数据处理相关,那么就用python对18年的互联网事件进行一个简单的记录与分析。这里主要用了wordcloud和jieba。
首先来看一个数据表,这份excel表单几乎就是2018全年互联网圈发生的所有事件了。

那么现在想要分析着数万条数据,可以用什么方法呢,我们首先会想到用可视化来呈现,图表展示也许会更清晰,但是这里我们选择用python中简单易用的词云来展示。
废话就不多说了,直接贴代码。
#copyright by pricechen
#几个常用库
import xlrd
import jieba
from wordcloud import WordCloud,ImageColorGenerator
import codecs
import imageio #先把文件地址写好,对文件保存地址有需求的同学可以自行设置一下输入input
Savepath = 'E:\\pricechen\\data\\'
filename = '2018大事件记录.xlsx'
month = ['', '', '', '', '', '', '', '', '', '', '', ''] #对内容进行封装
def fileHandle(Savepath,filename,month):
#打开excel文件
book = xlrd.open_workbook(Savepath+filename)
sheet = book.sheet_by_name('Sheet') #处理新闻数据
for i in range(0,sheet.nrows):
#每一行内容
textLine = sheet.row_values(i)
# print(textLine)
#遍历月份
for data in month:
if textLine[0][5:7]==data:
#这里进行异常处理
try:
#写入以月份命名的文件夹
with open(Savepath+ data + '.txt', 'a+') as f:
f.write(textLine[1]+' ')
except FileNotFoundError:#文件不存在异常
continue
except UnicodeEncodeError:#编码异常
continue def WCHandle(Savepath,month):
#处理词云图片
for i in range(0,12):
imagePath = Savepath + 'background\\' + month[i] + '.jpg'
textPath = Savepath + month[i] +'.txt'
with codecs.open(textPath) as f:
text = f.read()
# cut_text = ' '.join(jieba.cut(text))#使用jieba分词得到词语字符串
#这里原本使用的是jieba分词,但是后面觉得分词之后展现的数据反而没有那么直观
cut_text = ' '.join(text.split(',')) #改用了将每一句话展现到词云里面
try: #背景图片选择,这里最后因为序号错误需要加一个异常处理,选择第00张图片
background = imageio.imread(imagePath)
except FileNotFoundError:
background = imageio.imread('E:\\pricechen\\data\\background\\00.jpg')
#设置词云参数
cloud = WordCloud(font_path = \
Savepath+'WenYue-FangTangTi-NC-2.otf',
background_color = 'white',mask = background,\
max_words=2000,max_font_size = 40,\
scale=10, #清晰度,这里考虑电脑配置,只选择15
)
word_cloud = cloud.generate(cut_text)
#保存,使用原图保存方式
word_cloud.to_file(Savepath+'2018\\Chinese'+month[i]+'.jpg')
#这边就是自动化处理了
if __name__=='__main__':
fileHandle(Savepath,filename,month)
WCHandle(Savepath,month)
以上就是所有代码了,一共六十行左右代码,就能处理近六万条数据。
十二个月的数据,每个月都处理为一张词云图,每张词云图都用了一个省的地图作为模板。
来看看处理后的结果,我就直接上图了,因为图片比较大(保存的清晰度较高),这里就只放两张图。


需要2018年互联网大事件数据的可以私信我,代码有错误的话欢迎指正哦。
60行python代码分析2018互联网大事件的更多相关文章
- 一个 11 行 Python 代码实现的神经网络
一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...
- 21行python代码实现拼写检查器
引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供很好的拼写检查,比方你输入 speling,谷歌会立即返回 spelling. 前几天,看到http://norvig.com/spe ...
- 教你看懂网上流传的60行JavaScript代码俄罗斯方块游戏
早就听说网上有人仅仅用60行JavaScript代码写出了一个俄罗斯方块游戏,最近看了看,今天在这篇文章里面我把我做的分析整理一下(主要是以注释的形式). 我用C写一个功能基本齐全的俄罗斯方块的话,大 ...
- 10 行 Python 代码实现模糊查询/智能提示
10 行 Python 代码实现模糊查询/智能提示 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的 ...
- 60行JavaScript代码俄罗斯方块
教你看懂网上流传的60行JavaScript代码俄罗斯方块游戏 早就听说网上有人仅仅用60行JavaScript代码写出了一个俄罗斯方块游戏,最近看了看,今天在这篇文章里面我把我做的分析整理一下( ...
- 20行Python代码爬取王者荣耀全英雄皮肤
引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成. 准备工作 ...
- 200行PYTHON代码实现贪吃蛇
200行Python代码实现贪吃蛇 话不多说,最后会给出全部的代码,也可以从这里Fork,正文开始: 目前实现的功能列表: 贪吃蛇的控制,通过上下左右方向键: 触碰到边缘.墙壁.自身则游戏结束: 接触 ...
- 200行Python代码实现2048
200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...
- 40多行python代码开发一个区块链。
40多行python代码开发一个区块链?可信吗?我们将通过Python 2动手开发实现一个迷你区块链来帮你真正理解区块链技术的核心原理.python开发区块链的源代码保存在Github. 尽管有人认为 ...
随机推荐
- HDU 3085 Nightmare Ⅱ(噩梦 Ⅱ)
HDU 3085 Nightmare Ⅱ(噩梦 Ⅱ) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Ja ...
- 理解 OAuth2.0
文章转载于阮一峰老师的博客:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 参考文章:https://learnku.com/article ...
- js清除childNodes中的#text(选项卡中会用到获取第一级子元素)
我们一般为了代码整洁代码都会换行,如上面所述. 获取div1节点下的childNodes var div = document.getElementById('div1') var child = d ...
- 深入理解Java虚拟机(第二版)中《长期存活对象将进入老年代》的实践
- UI组件--element-ui--Table组件自定义合计行
需求: Element-ui的Table组件自带合计行, 但是需求需要在合计行的某些单元格有特别的样式以及事件, 没有研究出怎么在既有合计行上完成此需求, 于是利用其原本的一些属性完成自定义合计行. ...
- Hadoop分布式文件系统HDFS的工作原理
Hadoop分布式文件系统(HDFS)是一种被设计成适合运行在通用硬件上的分布式文件系统.HDFS是一个高度容错性的系统,适合部署在廉价的机器上.它能提供高吞吐量的数据访问,非常适合大规模数据集上的应 ...
- spring配置JNDI(Java Naming and Directory Interface,Java命名和目录接口)数据源
1.在tomcat下的server.xml的 <GlobalNamingResources> </GlobalNamingResources>添加下面代码 <Resour ...
- springboot缓存注解——@Cacheable
@Cacheable: 1,方法运行之前,先查询Cache(缓存组件),按照cacheName指定的名字获取(CacheManager获取相应缓存) 第一次获取缓存如果没有Cache组件会自会自动创建 ...
- 基于python的Splash基本使用和负载均衡配置
0.引言 由于在软件工程综合实践专题课程中,老师要求在博客园发表博客我自己做过的小项目,本博客为课程第一篇博客 本项目来源于寒假学习python网络爬虫时所做的实战小项目,经过精心挑选,选择了页面动态 ...
- MongoDB数据查询 --MongoDB
1.插入测试数据 use flower db.goods.insert({'goods_name':'Hyacinth',price:10,num:800}) db.goods.insert({goo ...