python导入xlsx不包括列

with open('write_test.txt','w') as file_object: file_object.write('Life is short , I use python')

python 列 读取xlsx_Python新手上车25:Python作读取Excel1 原创

python导包 python导包规范python导包 python导包规范


python导包 python导包规范


2021-01-09 16:00:30

weixin_39890543

码龄5年

关注

ab7f79acbc82f90e2db6ee5721f42ab7.png

我们经常谈到Python 在办公自动化方面的能力,用python来处理Excel表格更是其中典型的代表,这个阶段我们会提到xlrd 、xlwt 、openpyxl等处理Excel的利器。我们还会提到pandas ,使用padas 你会发现处理数据如此简单高效!

eb518697b01f6d5830ca52f0f499813a.png

xlrd安装

开始菜单-->输入CMD --> pip install xlrd=1.2.0

作视频如下所示:

这里说明一下为什么要使用xlrd 1.2.0版本, 之前也遇到了这个坑,当你不指定版本时,默认给你安装版本xlrd2.0.1 ,但是使用后者读取.xlsx格式的文件时会出现以下报警:

2.0.1不支持xlsx格式文件,而目前我们使用的Excel2007以上版本生成的文件均是xlsx格式的,所以我们还是使用xlrd 1.2.0 来读取Excel. 当然未来我们还会讲到openpyxl,它不存在版本问题。

检查xlrd是否安装成功:

13c7fbca5f7498dbfb612f9f893fc10d.png

开始菜单-->输入CMD --> 输入python-->输入 import xlrd

如果没有报警,那么说明xlrd安装成功

635f18f40213e28372e862d3b6a.png

在程序的同级目录下有一个person_data 的Excel,里面有如下数据:

person_data.xlsx:

57313628be8049b09be1c7c9f56b0a4b.png

import xlrdworkbook=xlrd.open_workbook("person_data.xlsx")sheet1=workbook.sheet_by_name("Sheet1")print(sheet1.cell(1,0).value)

第下面演示如何使用 PyInstaller 将程序打包成Windows下的exe软件。一行:我们导入xlrd库

第二行:我们使用xlrd.open_workbook(path),括号以内是路径名称

第三行:我们使用workbook的sheet_by_name方法并传入“Sheet1”,代表我们按照表格名进行索引,找到“Sheet1”这个表,并将其赋值给sheet1

第四行:我们打印sheet1中的cell(1,0)的值,python是按0开始索引的,所以结合之前的VBA知识,cell(1,0)是哪个单元格呢?

来看看执行结果:

ac6c64308dcb2c9e6b51e0634e9a4733.png

e3e169b089abcc08056be022f89cabf0.png

遍历表格的列或行

事实上只取某个数值并不是我们想要的,有时候我们希望结合循环的方法,将一列或一行的数值取出,这样更有意义:

import xlrdworkbook=xlrd.open_workbook("person_data.xlsx")sheet1=workbook.sheet_by_name("Sheet1")for i in range(1,8): print(sheet1.cell(i,0).value)

行:我们导入xlrd库命令执行成功后在 I:workpythonSubOcrdist 文件夹下生成了SubOcr文件夹,里面包含了SubOcr.exe文件。整个SubOcr文件夹就是一个绿色软件,随便移动到任何位置都可运行。

第二行:我们使用xlrd.open_workbook(path),括号以内是路径名称

第三行:我们使用workbook的sheet_by_name方法并传入“Sheet1”,代表我们按照表格名进行索引,找到“Sheet1”这个表,并将其赋值给sheet1

第四行:我们遍历1-8范围,并把数值赋给i

第五行:我们打印列,第2至8行的数据,即姓名值

看看执行结果:

6529ae7788ad62a5dae46fd6d2f40384.png

这样我们就将表格中的数据获取出来了

dab01852cbcb5352cbf4d158dd216952.png

总行数和总列数

很多时候,我们希望表格中的行数是可变的,因为这样可以是记录变得可持续,但是带来的问题是,我们遍历的范围就需要是可变的,如何寻找这个可变的行数变量呢,我们可以使用总行数nrows 和总列数ncols 来计算目前的总列数和总行数:

以上excel为例,我们添加两行数据(红色字体部分):

person_data.xlsx:

82300f6f643082b27f8ddc1178ddbf15.png

现在我们来读取职位为工程师的人员的姓名:

import xlrdworkbook=xlrd.open_workbook("person_data.xlsx")sheet1=workbook.sheet_by_name("Sheet1")max_rows=sheet1.nrowsprint(sheet1.ncols)for i in range(1,max_rows): if sheet1.cell(i,2).value == "工程师": print("姓名:"+sheet1.cell(i,0).value +" 职位:"+sheet1.cell(i,2).value)

行:我们导入xlrd库

第二行:我们使用xlrd.open_workbook(path),括号以内是路径名称

第三行:我们使用workbook的sheet_by_name方法并传入“Sheet1”,代表我们按照表格名进行索引,找到“Sheet1”这个表,并将其赋值给sheet1

第四行:sheet1.nrows 代表sheet1的总行数,我们将总行数赋值给max_rows变量

第五行:打印sheet1的使用列数 ,即sheet1.ncols

第六行:遍历第2行至max_rows行

第七行:判断第i行第3列的值是否等于“”工程师“ ,如果是,则执行下面代码

第八行:打印姓名以及职位信息

看看执行结果:

现在即使我们再在person_data.xlsx里面增加数据(如下所示),也无需修改代码了:

0f6ed1fd8955b903f1813ea6bf28ff50.png

使用同样代码执行:

fbefb945b686615c64c5a54162060b6a.png

9da1a8e34a48225da12483e3160fafdf.png

上期:

1.使用python创建一个write_test.txt ,并在里面写入一句话:life is short,I use python

59248d239d2d52331b726b30b6d52559.png

1.创建一个test.xlsx的Excel ,在Excel内填写一行信息,使用python读取这一行信息,并将它打印出来。

使用PyInstaller打包Python程序

没错,cell(1,0)代表的就是第二行的列单元格,即“张一“ 这个名字。

PyInstaller是一个用来将这样我们就可以让输入者动态输入,而我们的程序仍然可以正常运行。Python程序打包成可执行软件的工具,支持 Windows、Linux 和 Mac OS X。生成的可执行软件在没有Python的环境中可以直接运行,方便软件分发,进一步降低使用成本,提升使用效率。

使用pip的方式进行安装,这样可以自动安装其他依赖库。

如果pip还未安装,请参考我的另一篇文章《 Python pip包管理工具 》

在cmd命令行控制台或者VS Code内置的终端输入命令行生成应用,首先将当前路径切换到Python程序所在的路径(如下示例的SubOcr.py文件在python文件夹下的SubOcr文件夹内),然后输入生成应用的命令。

实际上在用pyinstaller命令时会在Python程序的所在路径生成一个后缀为spec的同名文件,然后根据此文件的配置生成应用,这就是PyInstaller的原理。这样做的好处是spec保存了生成应用的配置,每次重新生成应用时可以省略指定参数,尤其是指定了其他的资源、程序库时。我们可以通过以下命令先生成spec文件。

pyi-makespec的命令参数跟pyinstaller的相同,在生成spec文件后可以对其部分选项进行编辑(可以用VS Code或自带的记事本编辑),添加更多参数,然后再用pyinstaller命令生成应用。

spec文件的主要选项:

上面示例的SubOcr用到了opencc和opencv-python,其中opencc下的数据文件和opencv-python下的dll文件在生成应用时不会自动导入(缺少这些文件应用无本期习题:常使用),因此需要在spec文件中指定路径。对spec文件的修改如下:

以上便是PyInstaller打包Python程序的全过程,如果在此过程中遇到问题,可以在评论区留言,定当知无不言,言无不尽。

彩色折线散点图python怎么指定数据

pyparsing-2.0.2.win32-py2.7.exe

一、导包

二、绘制简单折线

1、在利用pandas模块进行作前,可以先引入这个模块,如下:

2、读取Excel文件的两种方式:

1、读取指定的单行,数据会存在列表里面

2、读取指定的多三、pandas作Excel的行列行,数据会存在嵌套的列表里面

3、读取指定的行列

4、读取指定的多行多列值

5、获取所有行的指定列

6、获取行号并打印输出

7、获取列名并打印输出

8、获取指定行数的值

四、pandas处理Excel数据成为字典

五、绘制简单折线图

六、绘制简单散点图

使用s使用xlrd打开Excelcatter绘制散点图并设置其样式

1、绘制单个点,使用函数scatter,并向它传递x,y坐标,并可使用参数s指定点的大小

2、绘制一系列点,向scatter传递两个分别包含x值和y值的列表

3、设置坐标轴的取值范围:函数axis()要求提供四个值,x,y坐标轴的值和最小值

4、使用参数edgecolor在函数scatter中设置数据点的轮廓

5、向scatter传递参数c,指定要使用的颜色

6、使用颜色映射

7、自动保存图表:使用函数plt.sefig()

8、设置绘图窗口尺寸

9、实例程序

请问一下python中已经安装过pandas包,但是导入的时候为什么发生这个错误,应该怎么解决

xlrd.biffh.XLRDError: Excel xlsx file;not supported

你遇到的问题一看就是少装了包。在windows下安装pandas,只安装pandas一个包显然是不够的,它并没有把用到的相关包都打进去,这点是很麻烦的,只有等错误信息出来后才知道少了哪些包。

我上期与本期习题总结了一下,一共需要安装如下包a4af0341c5ac005bdf947761ba277786.png:

matplotllib-1.3.1.win32-py2.7.exe

openpyxl-openpyxl-5d2c0c8704d2.tar.gz

setuptools-3.8.1.win32-py2.7.exe

numpy-MKL-1.8.1.win32-py2.7.exe

six-1.7.3.win32-py2.7.exe

python-dateutil-2.2.win32-py2.7.exe