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互联网大事件的更多相关文章

  1. 一个 11 行 Python 代码实现的神经网络

    一个 11 行 Python 代码实现的神经网络 2015/12/02 · 实践项目 · 15 评论· 神经网络 分享到:18 本文由 伯乐在线 - 耶鲁怕冷 翻译,Namco 校稿.未经许可,禁止转 ...

  2. 21行python代码实现拼写检查器

    引入 大家在使用谷歌或者百度搜索时,输入搜索内容时,谷歌总是能提供很好的拼写检查,比方你输入 speling,谷歌会立即返回 spelling. 前几天,看到http://norvig.com/spe ...

  3. 教你看懂网上流传的60行JavaScript代码俄罗斯方块游戏

    早就听说网上有人仅仅用60行JavaScript代码写出了一个俄罗斯方块游戏,最近看了看,今天在这篇文章里面我把我做的分析整理一下(主要是以注释的形式). 我用C写一个功能基本齐全的俄罗斯方块的话,大 ...

  4. 10 行 Python 代码实现模糊查询/智能提示

    10 行 Python 代码实现模糊查询/智能提示   1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的 ...

  5. 60行JavaScript代码俄罗斯方块

    教你看懂网上流传的60行JavaScript代码俄罗斯方块游戏   早就听说网上有人仅仅用60行JavaScript代码写出了一个俄罗斯方块游戏,最近看了看,今天在这篇文章里面我把我做的分析整理一下( ...

  6. 20行Python代码爬取王者荣耀全英雄皮肤

    引言王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了.我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成. 准备工作 ...

  7. 200行PYTHON代码实现贪吃蛇

    200行Python代码实现贪吃蛇 话不多说,最后会给出全部的代码,也可以从这里Fork,正文开始: 目前实现的功能列表: 贪吃蛇的控制,通过上下左右方向键: 触碰到边缘.墙壁.自身则游戏结束: 接触 ...

  8. 200行Python代码实现2048

    200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...

  9. 40多行python代码开发一个区块链。

    40多行python代码开发一个区块链?可信吗?我们将通过Python 2动手开发实现一个迷你区块链来帮你真正理解区块链技术的核心原理.python开发区块链的源代码保存在Github. 尽管有人认为 ...

随机推荐

  1. vue--js里跳转页面

    我们知道在vue里进行页面跳转的话,我们使用<router-link>这个标签 那在构造函数里我们不能直接操纵DOM元素,我们又该如何进行页面跳转呢? 步骤1: 我们先在DOM里设置三个按 ...

  2. [转]OpenStreetMap/Google/百度/Bing瓦片地图服务(TMS)

    转自:https://blog.csdn.net/youngkingyj/article/details/23365849 开源与成熟商业的瓦片地图服务(TMS  2  WMTS),都有如下共同的特性 ...

  3. 在Python中使用SMTP发送电子邮件

    Python中有内置的smtplib模块,完成一封邮件的发送,需要做很多准备工作.第三方的py_smtp这个包也是基于smtplib的,在Python中使用py_smtp发送电子邮件非常方便,只要填写 ...

  4. 查看linux是ubuntu还是centos

    方式一: radhat或centos存在: /etc/redhat-release 这个文件[ 命令 cat /etc/redhat-release ] ubuntu存在 : /etc/lsb-rel ...

  5. lua调用不同lua文件中的函数

    a.lua和b.lua在同一个目录下 a.lua调用b.lua中的test方法,注意b中test的写法 _M 和 a中调用方法: b.lua local _M = {}function _M.test ...

  6. django+nginx+gunicorn+pipenv微信小程序实践笔记

    一.我采用pipenv来管理虚拟环境,在本地新建虚拟环境: mkdir wxProject #进入环境目录,创建虚拟环境 pipenv install #激活虚拟环境 pipenv shell #然后 ...

  7. Maven发布jar包到私库

    首先修改maven的配置文件settings.xml,增加servers标签,配好maven服务器的账号密码 <servers> <server> <id>rele ...

  8. ionic2 获取dom节点

    ionic2页面上面获取dom节点,可以直接用原生的方法,document.querySelector()等, 但是不建议这样使用,建议使用官方的.就是要在获取的节点上加上#name的属性(相当于ge ...

  9. 空list赋值

    list=[] i =0 list[i] =1 Traceback (most recent call last): File "D:\ProgramData\Anaconda3\lib\s ...

  10. 最简单的RPC框架实现

    通过java原生的序列化,Socket通信,动态代理和反射机制,实现一个简单的RPC框架,由三部分组成: 1.服务提供者,运行再服务端,负责提供服务接口定义和服务实现类 2.服务发布者,运行再RPC服 ...