Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理

2020年2月29日星期六

一维数据的格式化和处理

数据组织的维度
从一个数据到一组数据
一个数据表达一个含义
一组数据表达一个或多个含义
一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应列表、数组和集合等概念
二维数据由多个一维数据构成,是一维数据的组合形式,表格是典型的二维数据,其中,表头是二维数据的一部分
多维数据由一维或二维数据在新维度上扩展形成
高维数据仅利用最基本的二元关系展现数据间的复杂结构
数据的操作周期
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第1张图片
一维数据的表示
如果数据间有序:使用列表类型
列表类型可以表达一维有序数据
—for循环可以遍历数据,进而对每个数据进行处理
如果数据间无序:使用集合类型
集合类型可以表达一维无序数据
—for循环可以遍历数据,进而对每个数据进行处理
一维数据的存储
存储方式一:空格分隔
如:中国 美国 德国 法国 英国 意大利
—使用一个或多个空格分隔进行存储,不换行
—缺点:数据中不能存在空格
存储方式二:逗号分隔
如:中国,美国,德国,法国,英国,意大利
—使用英文半角逗号分隔符进行数据存储,不换行
—缺点:数据中不能有英文逗号
存储方式三:其他方式
如:中国 美 国 美国 德国 法 国 法国 英国$意大利
—使用其他符号或符号组合分隔,建议采用特殊符号
—缺点:需根据数据特点定义,通用性较差
一维数据的处理

我们如何将存储的一维数据读入程序,表达为列表或者集合或者反过来,我们如何将程序类型的表示数据写入到文件中
将存储的一维数据读入程序,表达为列表或者集合
从空格分隔的文件中读入数据
中国 美国 日本 德国 法国 英国 意大利
txt=open(fname).read()#打开一个文件用.read文件读进来,变成一个大字符串
ls=txt.split()#根据空格分隔字符串中的信息
f.close()
在这里插入图片描述Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第2张图片在这里插入图片描述
此时ls包含的就是解析后的一维数据的列表形式
从一维数据的列表形式写入文件的方法
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第3张图片
join方法是指将join前面的字符串分割放置到后面的join参数中的各个元素之间
通过join()和split(),可以完成向文件的写入或者从文件的读出操作

二维数据的格式化和处理

二维数据的表示
二维 数据一般是一种表格形式,由于它的每一行具有相同的格式特点,一般我们采用二维列表类型来表示二维数据(它本身是一个列表而列表中的每一个元素又是一个列表,其中每个元素可以代表二维数据的一行或者一列)
我们可以使用两层for循环来遍历每一个元素,第一层for循环遍历列表的每个元素,再一次的for循环去遍历其中的元素
CSV格式与二维数据存储
CSV:Comma-Separated Values(用逗号分隔值)
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第4张图片Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第5张图片Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第6张图片如果数据中出现数据逗号,通过加双引号“,”或者增加转义符的方式进行处理,这里我们暂时不考虑数据中出现逗号的情况

二维数据按行存或者按列存都可以,具体由程序决定
一般索引习惯:ls[row][column],先行后列,根据一般习惯,外层列表每个元素是一行,按行存
二维数据的处理
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第7张图片
先用open打开一个文件,文件句柄表示为fo,我们知道我们使用二维列表来表达数据所以我们生成一个二维空列表ls,进一步我们从文件中读入每一行,并且把每一行的信息按行存储到列表中,作为列表的一个元素,我们用for line in fo读入文件的每一行,由于每一行的最后都有一个回车,我们一般使用replace方法将最后的回车替换为空字符串,替换后的新的line参数与之前相比仅仅去掉了最后一个回车换行符,进一步我们可以使用ls.append方法按照逗号分隔的方式将每行中的元素按照逗号分隔开形成列表,并且把这个列表增加到ls列表中,作为其中的一个元素,经过for in 的循环遍历操作之后的ls包含二维数据的一个二维列表信息
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第8张图片首先我们有一个二维列表ls,我们可以用写方式打开一个文件,将ls中的每个元素作为一行写入到文件中,用for in读取其中的每一个元素然后将它写入,写入的时候我们需要在每一行的元素 中间增加逗号并且在每一行的最后增加会传染进行下一行的写入,因此我们调用f.write,经过for in 的循环可以将ls中的所有元素按照这样的约定写入文件,最后将文件关闭
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第9张图片
for row in ls代表遍历其中的每一行,用for column in row遍历每一列

总结:
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第10张图片

wordcloud库的使用

wordcloud库的基本使用
wordcloud是优秀的词云展示第三方库,它能够将一段文本变成一个词云(将词语通过图形可视化的方式直观和艺术的展示出来)
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第11张图片使用cmd命令行pip install wordcloud进行安装出现问题
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第12张图片在网上找到的解决方案如下:
首先在http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud,下载我们需要的对应版本的wordcloud 的whl文件,根据自己需求下载即可。
然后,我们在cmd命令行中,进入到我们刚刚下载的文件的路径,使用
pip install wordcloud-1.3.3-cp36-cp36m-win_amd64.whl 命令开始安装,大约一分钟就可以安转完成!
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第13张图片wordcloud库使用说明
wordcloud库把词云当作一个WordCloud对象,wordcliud可以根据文本中词语出现的频率等参数绘制词云,绘制词云的形状、尺寸和颜色都可以设定
用wordcloud库中的WordCloud来表明一个词云,它是一个词云的对象基础,简单说我们可以认为wordcloud就是一个程序版的词云,然后我们可以向这样一个对象中配置参数、加载文本并且将这样的一个程序对应的词云输出到文件中,使用w=wordcloud.WordCloud生成一个词云对象,这个对象的变量是w,进一步我们可以向这个词云对象w赋予特定的文本参数以及操作将词云输出成文件,这里关联了两个wordcloud库的常规的方法
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第14张图片generate(txt)我们将一段文本加载到这个词云对象中
to_file(filename)将词云输出为图像文件,我们才能看到词云效果
词云绘制的步骤介绍:
1、配置对象参数
2、加载词云文本
3、输出词云文件
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第15张图片
在这里插入图片描述生成的图片宽度默认为400像素、高度默认为200像素
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第16张图片配置对象参数
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第17张图片Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第18张图片Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第19张图片Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第20张图片

政府工作报告词云实例验证

基本思路
步骤1:读取文件、分词整理
步骤2:设置并输出词云
步骤3:观察结果,优化迭代
代码一:

#GovRptWordCloudV1.py
import wordcloud
import jieba
f=open("新时代中国特色社会主义.txt","r",encoding="ansi")
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=" ".join(ls)
w=wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=700,background_color="white")
w.generate(txt)
w.to_file("govwordcloud.png")

结果一:Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第21张图片
代码二:

#GovRptWordCloudV1.py
import wordcloud
import jieba
f=open("关于实施乡村振兴战略的意见.txt","r",encoding="ansi")
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=" ".join(ls)
w=wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=700,background_color="white")
w.generate(txt)
w.to_file("xczxwordcloud.png")

结果二:
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第22张图片
代码三:

#GovRptWordCloudV1.py
import wordcloud
import jieba
f=open("新时代中国特色社会主义.txt","r",encoding="ansi")
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=" ".join(ls)
w=wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=700,background_color="white",max_words=15)
w.generate(txt)
w.to_file("govrptwordcloud.png")

结果三:
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第23张图片
代码四:

#GovRptWordCloudV1.py
import wordcloud
import jieba
f=open("关于实施乡村振兴战略的意见.txt","r",encoding="ansi")
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=" ".join(ls)
w=wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=700,background_color="white",max_words=15)
w.generate(txt)
w.to_file("xczxzlwordcloud.png")

结果四:
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第24张图片
要想生成五角星形状的词云,要提供一个背景是白色的五角星图片,在原有代码中修改这三个地方,我们读取一个图片文件,保存为一个变量,并把这个变量赋给wordcloud对象的mask参数
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第25张图片由于没有安装scipy所以在命令行 pip install
scipy但是依然无法运行程序,因新版本的scipy库里imread 模块被移除了,所以采用下面的方法
按着提示先pip install imageio 再 import imageio 最后img=imageio.imread(’**.png’)
代码五:

#GovRptWordCloudV1.py
import wordcloud
import jieba
import imageio 
img=imageio.imread('love.png')
f=open("新时代中国特色社会主义.txt","r",encoding="ansi")
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=" ".join(ls)
w=wordcloud.WordCloud(font_path="msyh.ttc",mask=img,width=1000,height=700,background_color="white")
w.generate(txt)
w.to_file("govfivestar.png")

结果五:
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第26张图片这里再贴两个描述我的朋友的两个词云>.<
To Miss.Li
Python入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第27张图片To Mr.XuPython入门实例验证及结果之实例13 政府词云报告 ## 一维数据的格式化和处理 ## 二维数据的格式化和处理_第28张图片

你可能感兴趣的:(python)