excel_wordcloud操作(初学者教程)

一、Excel文件的读取与写入

1、读取操作步骤:

    (1)导入模块xlrd

    (2)打开工作簿Book

    (3)指定工作簿的表单Sheet

    (4)根据行列序号读取内容

#实例1、读取Stu_pack中的Excel文件内容school.xls,将结果保存以列表中

#(1)导入模块xlrd

import xlrd

#(2)打开工作簿Book

wb=xlrd.open_workbook('../Stu_pack/school.xls')

#(3)指定工作簿的工作表Sheet

sheet=wb.sheet_by_index(0)

#(4)根据行列序号读取内容

schools=[] #定义一个二维列表存放行内容

for row in range(sheet.nrows):

    school=[] #定义一个一维列表存放单元格内容

    for col in range(sheet.ncols):

        content=sheet.cell_value(row,col)

        school.append(content) #将单元格的内容追加到一维列表里面

    schools.append(school) #将每行的内容追加到二维列表里面

#从列表中读取数据
i=1
for school in schools:
    if i<12:
        print(school)
        i=i+1

运行结果如图:

ee891b272a9f4543887f65aafe7e85ae.png

 2、Excel文件的写入操作步骤:

(1)导入模块:xlwt

(2)构造工作簿:Workbook

(3)为工作簿添加表单:Worksheet

(4)根据行列序号写入内容

(5)保存文件

示例2、将示例1读取的Excel文件内容,写入到另一个Excel中并保存的R&Q_pic文件夹里,对学校所在省份进行简单判断。第一行合并单元格显示标题。

#(1)导入模块:xlwt和xlrd

import xlrd

import xlwt

#(2)读取文件内容

def read_excel(file_name):

    wb=xlrd.open_workbook(file_name)

    sheet=wb.sheet_by_index(0)

    schools=[] #定义一个二维列表存放行内容

    for row in range(sheet.nrows):

        school=[] #定义一个一维列表存放单元格内容

        for col in range(sheet.ncols):

            content=sheet.cell_value(row,col)

            school.append(content) #将单元格的内容追加到一维列表里面

        schools.append(school) #将每行的内容追加到二维列表里面

    return schools #返回二维列表值

#(3)写入文件内容

def write_excel(schools):

    

    #(2)构造工作簿:Workbook

    wb=xlwt.Workbook(encoding='utf-8')

    #(3)为工作簿添加表单:Worksheet

    sheet=wb.add_sheet('上海市高校信息表')

    #(4)根据行列序号写入内容

 

    sheet.write_merge(0,0,0,6,'上海市高校信息表') #合并第一行第一个单元格到第六个单元格写入表头

    for col in range(7): #写入列表名称(列表字段)

        sheet.write(1,col,schools[0][col])

    row_num=2

    for school in schools:

        if school[2]=='上海市':

            for col in range(7):

                sheet.write(row_num,col,school[col])

            row_num=row_num+1

    wb.save('../R&Q_pic/上海市高校信息表.xls')

#调用函数

schools=read_excel('../Stu_pack/school.xls')

write_excel(schools)

运行结果如图:

9b4132c368ce4bce8bea1e308c3512b7.png

 #示例2:将示例1读取的 Excel 文件内容,写入到另一个Excel中,对学校所在省份进行简单判断。第一行合并单元格显示标题。

                                                                                #(1)导入模块:xlwt

import xlrd

import xlwt

 

#(2)读取文件内容

def read_excel(file_name): #定义读取文件函数

    wb = xlrd.open_workbook(file_name) #创建读取文件的对象wb  

    sheet = wb.sheet_by_index(0)

    schools = []

    for row in range(sheet.nrows):

        school = []

        for col in range(sheet.ncols):

            content = sheet.cell_value(row,col)

            school.append(content)

        schools.append(school)

    return schools #提供返回值

 

#(3)写入文件内容

 

def write_excel(schools): #定义写入文件函数

                                                                                #(2)构造工作簿:Workbook

    wb = xlwt.Workbook(encoding = 'utf-8') #创建写入文件的对象wb

                                                                                #(3)为工作簿添加表单:Worksheet

    s = wb.add_sheet('上海市高校信息表') #创建一个表单

                                                                                #(4)根据行列序号写入内容

    #添加文本的样式(字体和对齐)

    font = xlwt.Font() #字体

    font.bold = True

    font.height = 400

    font.underline = True

    font.colour_index = 6 #0:黑,1:白,2:红,3:绿,4:蓝,5:黄,6:紫

    align = xlwt.Alignment() #对齐

    align.horz = 2 #水平居中 1:左,2:中,3:右

    align.vert = 1 #垂直居中 0:上,1:中,2:下

    style = xlwt.XFStyle() #样式

    style.font = font

    style.alignment = align

    

    s.write_merge(0,0,0,6,'上海市高校信息表',style) #写表标题并合并单元格(A1:A7)

    for col in range(7): #写表列表名称

        s.write(1,col,schools[0][col]) #第2行第1列开始写内容school[0][col]

    row_num = 2 #从第3行开始写数据

    for school in schools: #一行一行写数据内容

        if school[2] == '上海市':

            for col in range(7):

                s.write(row_num,col,school[col])

            row_num = row_num + 1

                                                                                #(5)保存文件内容

    wb.save('../R&Q_pic/上海市高校信息表.xls')

 

school_list = read_excel('../Stu_pack/wordcloud/school.xls') #调用读取函数,将素材里的文件school.xls作为实参传递给形参

write_excel(school_list) #调用写入函数,将读取的数据作为实参传递给形参写入到文件"上海市高校信息表.xls"里保存

 

schools_list = read_excel('../R&Q_pic/上海市高校信息表.xls')

i=1

for school in schools_list:

    if i<13:

        print(school)

        i+=1

pip install xlwt

15fb2b0015cb43e193bb8f57cff21655.png

 一、用pandas读写excel文件

import pandas as pd #导入第三方库pandas,如果没有需要安装pip install pandas

data = pd.read_excel('../Stu_pack/wordcloud/school.xls',index_col=0) #创建文件对象d

data

32c01d61c4044fcabb3b599d1f46654a.png

 data.head(10)

dbe07b1561f043caacd0f3d72f55c91e.png

 data = data[data['所在省份']==['上海市']

data = data[data['是否985']=='是']

data

83a3842152db44208ef7ac1cae08faaa.png

 data.to_excel("../R&Q_pic/上海市高校信息.xls")

ed201c117cc3498b83cb2d4b4c351fdf.png

 二、词云库wordcloud的安装与应用

1、安装 pip install wordcloud #网络安装

python - m pip install 本地路径 #本地安装

2、应用

生成步骤:

创建词云对象-->加载词云文本-->输出词云图片(文件)

(1)默认的矩形词云图片

(2)提供的图形词云图片

#示例1:生成默认的矩形词云图(原文件为英文)

 

import wordcloud #(1)导入词云库

from PIL import Image #导入图片库

with open('../Stu_pack/wordcloud/Dream It Possible.txt',encoding='utf-8') as file: #读取词云文件    

    fr=file.read()

 

fr=jieba.lcut(fr) #将文本内容进行词语分割并用空格分隔开来

fr=' '.join(fr)                

wc=wordcloud.WordCloud(font_path='C:\windows\Fonts\STCAIYUN.TTF') #(2)创建词云对象

 

wc.generate(fr) #(3)加载词云文本

wc.to_file('../R&Q_pic/test.jpg') #(4)输出词云图片(文件)

Image.open('../R&Q_pic/test.jpg')

e56aaca466554e72a3e153a10e0c02ff.png

 pip show wordcloud

0a1d5ca8c9a74f34aebd964b00d76c05.png

 pip install wordcloud

27ca1b540345492ba8fc908d6cad9bda.png

 

 #示例2:生成提供的图形词云图片

import wordcloud #(1)导入词云库

from PIL import Image

import jieba

from imageio import imread

import matplotlib.pyplot as plt

 

with open('../Stu_pack/wordcloud/Dream It Possible.txt',encoding = 'utf-8')as file:

     fr = file.read()

 

fr = jieba.lcut(fr)

fr = ''.join(fr)

 

#im = Image.open('../Stu_pack/wordcloud/Love_Star.PNG')

im = imread('../Stu_pack/wordcloud/Love_Star.PNG')

 

wc = wordcloud.WordCloud(mask = im ,font_path = 'C:\Windows\Fonts\STCAIYUN.TTF',background_color ='pink')#(2)创建词云对象

 

wc.generate(fr) #加载词云文本

 

wc.to_file('../R&Q_pic/test1.png') #输出词云图片(文件)

#Iamge.open('../R&Q_pic/test1png')

plt.imshow(wc) #用plt绘制词云图片并显示出来

plt.axis('off')

plt.savefig('../R&Q_pic/test2.png')

plt.show()

ea6c02a8b1ab4a82ac246179a42689d7.png

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值