python插入空列方法,python 怎么新增一列

首页 > 经验 > 作者:YD1662022-10-27 09:03:29

模块的介绍和安装

Python专栏中有对所有可以操作Excel的模块进行了对比分析,感兴趣的同学可以前去围观。

推荐阅读:Python*死Excel?众多模块哪家强

openpyxl模块是一个可以读取和写入Excel文件的模块,可以处理Excel数据、公式、样式,在表格里面插入图表等;需要单独安装不包含在python标准库里;

安装:pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple

在windows系统下使用此条指令进行第三方库的安装省时间,Mac端直接使用pip3 install 模块名

具体openpyxl的官方文档可以参照https://openpyxl.readthedocs.io/en/stable/

Excel表格术语

列:column,以字母表示,在表格的上方

行:row,以数字表示,但是注意这里是从1开始,在表格的左侧

表单:sheet,在表格的下部

python插入空列方法,python 怎么新增一列(1)

读数据

打开Excel表格并获取表格名称

下面读取表格的整体思路就是:

  1. 读取一个表格
  2. 获取里面的某个sheet
  3. 获取sheet中单元格、某行、某列的数据
  4. 获取指定范围的行列数据
  5. 案例:查找有空值的单元格

load_workbook(filename = 表格文件路径);workbook.sheetnames 获取表格文件内的sheet名称

注意:只能打开存在的表格,不能用该方法创建一个新表格文件

我们通过读取丝芙兰的售卖商品来学习Excel操作,内容如下:

python插入空列方法,python 怎么新增一列(2)

from openpyxl import load_workbook workbook = load_workbook(filename= 'cosmetics.xlsx') print(workbook.sheetnames)

可以看到有:

['cosmetics', 'Sheet1', 'Sheet2']

那么我们就可以通过sheetname获取表格,但是如果Excel中只有一个sheet,那么可以直接使用.active

sheet = workbook['cosmetics'] # 返回的是workbook对象:<Worksheet "cosmetics">

但是我们的workbook是有多个sheet的,active的使用如下:

sheet = workbook.active

获得Excel里面的sheet之后就可以对表格的数据进行操作。比如:获取表格的尺寸大小;第一行第一列的数据,代码如下:

print(sheet.dimensions) # 获取的表格的范围:A1:K1473 cell = sheet['B1'] print(cell.value) # 获取B1表格的数据,结果:Brand 获取某一行或者某一列的内容

col_content = sheet['B'] # 表示获取B这一列 row_content = sheet[3] #获取第3行数据 print(row_content)

注意返回的Cell单元格对象

(<Cell 'cosmetics'.A3>, <Cell 'cosmetics'.B3>, <Cell 'cosmetics'.C3>, <Cell 'cosmetics'.D3>, <Cell 'cosmetics'.E3>, <Cell 'cosmetics'.F3>, <Cell 'cosmetics'.G3>, <Cell 'cosmetics'.H3>, <Cell 'cosmetics'.I3>, <Cell 'cosmetics'.J3>, <Cell 'cosmetics'.K3>)

如果想获取每个里面的值,可以结合value属性

# 接上代码 for row in row_content: print(row.value) 获取多行或者多列内容

.iter_rows(min_row = 最低行数,max_row = 最高行数,min_col = 最低列数,max_col = 最高列数) 按行获取

.iter_cols(min_row = 最低行数,max_row = 最高行数,min_col = 最低列数,max_col = 最高列数) 按列获取

注意:这两个演示任一个都可以,两个案例的区别就是第一个是每次获取一行内容,第二个是按照列获取内容。

每次获取一行数据

for row in sheet.iter_rows(min_row=2, max_row=5, min_col= 1,max_col=4): # 涵盖范围的所有单元格都会显示 # print(row) # 每行的内容是一个元组的内容,如果想看到数据还需要继续遍历 for cell in row: print(cell.value) print('-'*50)

结果:

python插入空列方法,python 怎么新增一列(3)

这个获取的内容有点类似使用pandas的loc获取第几行几列的情况。

同样列的获取也是一样道理,就是每次获取一列数据

for col in sheet.iter_cols(min_row=2, max_row=5, min_col= 1,max_col=4): print(col) for cell in row: print(cell.value) print('-'*50)

结果:

python插入空列方法,python 怎么新增一列(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.