![1afe2362427f5334a4b78b5231b02592.png](https://i-blog.csdnimg.cn/blog_migrate/ec9846de668d31bd1bfbc57779eb9b84.png)
![7c50113cdceb1e7e081ab7c6b46cc06b.png](https://i-blog.csdnimg.cn/blog_migrate/b03c27649d7a44d8da6accacc91160ce.png)
文章小长,却很受用!这是小编的在这个公众号的第一篇推文,格外用心!安心听课!由于项目需要处理大量的数据,这些基础数据被存储在Excel表格中,团队运用了Python强大的数据处理能力进行了数据整理和数据清洗的工作。
全文共3376个字,预计阅读约15分钟!
怎么又是python!!!【好牛皮的样子】
目录1、pandas、xlwt和xlrd库的安装
2、Python对Excel文件的读操作
3、Python对Excel文件的写操作
1、pandas、xlwt和xlrd库的安装
这里小编提供两种方法:
方法一:使用cmd命令行进行安装。按windows+R,弹出运行命令框,直接输入pip install pandas,点击确定,即进入安装界面,其他库也可按照此方式进行安装。
方法二:打开Pycharm(小编使用的是这一款IDE),依次点击File-Settings-Project-Project Interpreter-点击加号(下图),后边就是输入库名,安装就好了。
假装安好了
2、Python对Excel文件的读操作
这里同样也是介绍两种读操作方式,两种适用条件不同,可以自行甄选使用哦。
方法一:
使用pandas库进行读操作。
Pandas是python第三方库,提供高性能易用数据类型和分析工具。在使用时一般输入import pandas as pd(后边的as pd实际上就是给它起了个小名,方便调用)。其常与Numpy、Matplotlib结合使用,完成数据处理和数据可视化的一些工作。
上代码!!
先说一下用到的案例:
文件类型为xlsx类型,文件名称为file_test,文件内容如下图。
# author:Zhenqian ZHANG# -*- coding: utf-8 -*-import pandas as pd # 导入pandas库df = pd.read_excel(r"C:\Users\Phil\Desktop\test_file.xlsx", encoding='gbk')# 读取文件:pd.read_excel("file path",encoding=)默认encoding是UTF-8,但是据说gbk对中文会好点# 先介绍些必备知识(只是部分知识,比如数据拼接、数据清理在本文并未介绍)#1.查看数据print(df.shape[0]) # 返回行数,返回15print(df.shape[1]) # 返回列数,返回3print(df.head()) # 返回前几行,默认为5print(df.tail(4)) # 返回后几行,默认为5print(df.describe()) # 返回数据列的一些数据特征值,比如最大值、最小值、平均数等等print(df.info()) # 返回数据集的基本信息print(df.columns) # 返回列名print(df.dtypes) # 返回数据类型print(df.mean()) # 返回平均值#2.数据选取std_name = df["姓名"] # 新建std_name列表,并将文件中的“姓名”这一列存储进去std_name2 = df.姓名 # 和 上一行一样的效果,只不过是不同的方式scores = df["成绩"] # 新建scores列表,并将文件中的“成绩”这一列存储进去print(df[["序号","成绩"]]) # 查看多行多列print(df.iloc[0]) # 按索引查看某行,第一行:print(df.iloc[1,1]) # 输出李四,因为行列都是从0开始索引的for i in std_name2: print(i) # 将依次输出姓名# 接下来我们可以做一些简单的统计#1.我们统计下成绩大于90的人数num = 0for j in scores: if j >= 90: num += 1 # 每找到一个就自加1print(num)#2.将成绩大于等于90的学生姓名和成绩打印出来for id,sc in enumerate(scores): # enumerate()返回列表的检索号(存储在了id变量中)和值(存储在了sc变量中) if sc >= 90: print(std_name[id], "\t" , sc) else: continue
方法二:
使用xlrd库进行读操作。不啰嗦,直接上代码!!!【就是这么粗暴,你打我啊】
# author:Zhenqian ZHANG# -*- coding: utf-8 -*-import xlrd # 导入库file_path = r"C:\Users\Phil\Desktop\test_file.xlsx" # 这里我有添加了一个数据表sheet2book = xlrd.open_workbook(file_path) # 注意这里是数据簿,对比一下前文的pandas是打开的数据表sheet0 = book.sheet_by_index(0) # 按照索引号得到表单sheet1 = book.sheet_by_name("sheet1") # 按照表单名得到表单sheet_name = book.sheet_names()[0] # 得到检索号为0的表单的表名print(sheet_name)# 获得行数和列数Nn_rows = sheet0.nrows # 行总数Nb_cols = sheet0.ncols # 列总数# 获得指定行、列的值,返回对象为一个值列表row_data = sheet0.row_values(0) # 获得第1行的数据列表print(row_data)col_data = sheet0.col_values(0) # 获得第1列的数据列表print(col_data)# 通过单元格坐标读取单元格中的数据cellValue1 = sheet0.cell_value(0, 0)cellValue2 = sheet0.cell_value(0, 1)print(cellValue1)print(cellValue2)
3、文件的写操作
最后一个啦。。。
对Excel文件进行写操作主要是用到xlwt库。所谓写操作就是把你代码中想保存的数据写入Excel文件中,然后保存下来。无非就是一些建表、写入、保存的操作。加把劲!!!
# author:Zhenqian ZHANG# -*- coding: utf-8 -*-import xlwt # 导入库# 创建一个数据簿,相关参数可自行查阅,主要的就是这两个book = xlwt.Workbook(encoding='utf-8', style_compression=0)#创建一个表单,表单名为test,第二个参数表示设置为可编辑模式sheet = book.add_sheet("test", cell_overwrite_ok=True)# 向表中添加数据sheet.write(0,0,"ID") # 表示在第一行第一列写入IDsheet.write(0,1,"姓名") # 表示在第一行第二列写入姓名for i in range(1,4): sheet.write(i,0,i) #这里表示在表单的第一列写入3个序号names = ["张三","李四","王五"] # 建一个名字列表for j in range(len(names)): #这里len()函数可以返回列表的长度 sheet.write(j+1,1,names[j]) # 这里表示在第二列依次写入三个名字book.save(r"C:\Users\Phil\Desktop\test.xls") # 这里加r表示转义,也可以直接使用"C://Users//Phil//Desktop//test.xls"# 注意这里的文件格式是xls的
输出的文件为:
![b7d1e37bcb0a3c90989bf2b3eb68ba63.png](https://i-blog.csdnimg.cn/blog_migrate/151005ba89360be68ec80bf562b5649b.png)
终于结束了,其实这三个库还有很多其他知识,自己要多查阅资料、多敲代码。小编也和你一样在慢慢成长哦。
温馨提示
如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我们。
![b3607b519f8a576b89a7ff3fe23cddc3.png](https://i-blog.csdnimg.cn/blog_migrate/8a4c59a991afec9c4cc7ebfafc2ef283.png)
![2ba2f9df417e7cb5b8a85d5e93a684d3.png](https://i-blog.csdnimg.cn/blog_migrate/c5441f22c4028e78e0462b179ddd3abb.jpeg)