我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python实现——处理Excel表格(超详细)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python实现——处理Excel表格(超详细)

目录

  • 一个Excel电子表格文档称为一个工作簿
  • 一个工作簿保存在一个扩展名为.xlsx的文件中
  • 一个工作簿可以包含多个表
  • 用户当前查看的表(或关闭Excel前最后查看的表)称为活动表
  • 在特定行和列的方格称为单元格、格子

在这里插入图片描述

处理Excel表格需要用到openpyxl模块,该模块需要手动安装pip install openpyxl

xls和xlsx

简单来说:
xls是excel2003及以前版本所生成的文件格式
xlsx是excel2007及以后版本所生成的文件格式
(excel 2007之后版本可以打开上述两种格式,但是excel2013只能打开xls格式)
进一步的详细解释参见:excel后缀.xls和.xlsx有什么区别

基本操作

用到的test.xlsx表格
在这里插入图片描述

1:用openpyxl模块打开Excel文档,查看所有sheet表

openpyxl.load_workbook()函数接受文件名,返回一个workbook数据类型的值。这个workbook对象代表这个Excel文件,这个有点类似File对象代表一个打开的文本文件。

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')# 返回一个workbook数据类型的值print(workbook.sheetnames)# 打印Excel表中的所有表# 结果:# ['Sheet1', 'Sheet2']

2.1:通过sheet名称获取表格

在第10行,使用workbook['Sheet1']获取指定sheet表

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值print(workbook.sheetnames)  # 打印Excel表中的所有表sheet = workbook['Sheet1']  # 获取指定sheet表print(sheet)# 结果:# ['Sheet1', 'Sheet2']# 

2.2:获取活动表

使用workbook.active获取活动表

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active     # 获取活动表print(sheet)# 结果:# 

3.1:获取表格的尺寸

这里所说的尺寸大小,指的是excel表格中的数据有几行几列,针对的是不同的sheet而言
使用sheet.dimensions获取表格的尺寸
下面打印的A1:B7是什么意思呢?
在这里插入图片描述

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook['Sheet1']  # 获取指定sheet表print(sheet.dimensions)     # 获取表格的尺寸大小# 结果:# A1:B7

4.1:获取单元格中的数据

方法1:指定坐标的方式
sheet[“A1”]

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active     # 获取活动表# print(sheet.dimensions)     # 获取表格的尺寸大小cell1 = sheet['A1']         # 获取A1单元格的数据cell2 = sheet['B7']         # 获取B7单元格的数据# cell2 = sheet['B7'].value# 另一种写法# 正确示范# cell1.value获取单元格A1中的值# cell2.value获取单元格B7中的值print(cell1.value,cell2.value)  # 姓名 18# 错误示范print(cell1,cell2)  #  

方法2: 指定行列的方式
sheet.cell(row=, column=)方式

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active     # 获取活动表# print(sheet.dimensions)     # 获取表格的尺寸大小cell1 = sheet.cell(row=1,column=1)         # 获取第1行第1列的数据cell2 = sheet.cell(row=3,column=2)         # 获取第3行第4的数据# 正确示范# cell1.value获取单元格A1中的值# cell2.value获取单元格B7中的值print(cell1.value,cell2.value)  # 姓名 41

4.2:获取单元格的行、列、坐标

  • .row 获取某个格子的行数;
  • .columns 获取某个格子的列数;
  • .coordinate 获取某个格子的坐标;
import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表# print(sheet.dimensions)     # 获取表格的尺寸大小cell = sheet.cell(row=3, column=2)  # 获取第3行第4的数据print(cell.value, cell.row, cell.column, cell.coordinate)'''结果:41 3 2 B3'''

5:获取区间内的数据

获取单行单列数据的时候,使用一层for循环;获取多行多列、指定区间的数据时,使用两层for循环

获取指定区间的数据

  1. 使用sheet['A1:A5']拿到指定区间
  2. 使用两个for循环拿到数据
import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:')print(sheet)cell = sheet['A1:A5']  # 获取A1到A5的数据print(cell)# 打印A1到A5的数据for i in cell:    for j in i:        print(j.value)# 结果:# 当前活动表是:# # ((,), (,), (,), (,), (,))# 姓名# 张三# 李四# 王五# 赵六

获取指定行列的数据

  • sheet[“A”] — 获取A列的数据
  • sheet[“A:C”] — 获取A,B,C三列的数据
  • sheet[5] — 只获取第5行的数据

下面的代码,获取一列数据的时候,使用一层for循环

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))cell = sheet['2']  # 获取第2行的数据# 打印A1到A5的数据for i in cell:    print(i.value)# 结果:# 当前活动表是:# 张三# 74

下面代码,获取两列数据的时候,使用两层for循环。注意到,两列的结果打印到一起了,可读性较差

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))cell = sheet['A:B']  # 获取AB列的数据# 打印AB列数据for i in cell:    for j in i:        print(j.value)# 结果:# 当前活动表是:# 姓名# 张三# 李四# 王五# 赵六# alice# bob# 年龄# 74# 41# 56# 12# 17# 18

按行、列获取值

iter_rows():按行读取
iter_cols():按列读取

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))# 按行获取值print('按行获取值')for i in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=2):    for j in i:        print(j.value)# 按列获取值print('按列获取值')for i in sheet.iter_cols(min_row=2, max_row=5, min_col=1, max_col=2):    for j in i:        print(j.value)# 结果:# 当前活动表是:# 按行获取值# 张三# 74# 李四# 41# 王五# 56# 赵六# 12# 按列获取值# 张三# 李四# 王五# 赵六# 74# 41# 56# 12

在这里插入图片描述

获取活动表的行列数

方法1:使用
sheet.max_row 获取行数
sheet.max_column 获取列数

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('2.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))rows = sheet.max_row        # 获取行数column = sheet.max_column   # 获取列数print(rows)print(column)'''结果:当前活动表是:3816'''

方法2:自己写一个for循环

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))row = []column = []# 获取当前活动表有多少行for i in sheet.rows:    row.append(list(i))         # i是元组类型,转为列表# 获取当前活动表有多少列for i in sheet.columns:    column.append(list(i))    # i是元组类型,转为列表print('行数:'+str(len(row)))print('列数:'+str(len(column)))'''结果:当前活动表是:行数:12列数:3'''

操作

创建新的excel

第9行代码用来指定创建的excel的活动表的名字:

  • 不写第9行,默认创建sheet
  • 写了第9行,创建指定名字的sheet表
import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.Workbook()sheet = workbook.activesheet.title = '1号sheet'workbook.save('1.xlsx')

修改单元格、excel另存为

第9行代码,通过给单元格重新赋值,来修改单元格的值
第9行代码的另一种写法sheet['B1'].value = 'age'
第10行代码,保存时如果使用原来的(第7行)名字,就直接保存;如果使用了别的名字,就会另存为一个新文件

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表sheet['A1'] = 'name'workbook.save('test.xlsx')

在这里插入图片描述

添加数据

插入有效数据

使用append()方法,在原来数据的后面,按行插入数据

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))data = [    ['素子',23],    ['巴特',24],    ['塔奇克马',2]]for row in data:    sheet.append(row)   # 使用append插入数据workbook.save('test.xlsx')

在这里插入图片描述

插入空行空列

  • insert_rows(idx=数字编号, amount=要插入的行数),插入的行数是在idx行数的下方插入
  • insert_cols(idx=数字编号, amount=要插入的列数),插入的位置是在idx列数的左侧插入
import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))sheet.insert_rows(idx=3, amount=2)sheet.insert_cols(idx=2, amount=1)workbook.save('test.xlsx')

在这里插入图片描述

删除行、列

  • delete_rows(idx=数字编号, amount=要删除的行数)
  • delete_cols(idx=数字编号, amount=要删除的列数)
import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))sheet.delete_rows(idx=10)           # 删除第10行sheet.delete_cols(idx=1, amount=2)  # 删除第1列,及往右共2列workbook.save('test.xlsx')

在这里插入图片描述

移动指定区间的单元格(move_range)

move_range(“数据区域”,rows=,cols=):正整数为向下或向右、负整数为向左或向上

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))sheet.move_range('D11:F12',rows=0,cols=-3)  # 移动D11到F12构成的矩形格子workbook.save('test.xlsx')

在这里插入图片描述

字母列号与数字列号之间的转换

核心代码

from openpyxl.utils import get_column_letter, column_index_from_string# 根据列的数字返回字母print(get_column_letter(2))  # B# 根据字母返回列的数字print(column_index_from_string('D'))  # 4

举个例子:

import osimport openpyxlfrom openpyxl.utils import get_column_letter, column_index_from_stringpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('2.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))# 根据列的数字返回字母print(get_column_letter(2))  # B# 根据字母返回列的数字print(column_index_from_string('D'))  # 4

字体样式

查看字体样式

import osimport openpyxlimport openpyxl.stylespath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:'+str(sheet))cell = sheet['A1']font = cell.fontprint('当前单元格的字体样式是')print(font.name, font.size, font.bold, font.italic, font.color)'''当前活动表是:当前单元格的字体样式是等线 11.0 False False Parameters:rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type='theme''''

修改字体样式

openpyxl.styles.Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
其中,字体颜色中的color是RGB的16进制表示

import osimport openpyxlimport openpyxl.stylespath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print(sheet)cell = sheet['A1']cell.font = openpyxl.styles.Font(name="微软雅黑", size=20, bold=True, italic=True, color="FF0000")workbook.save('test.xlsx')

在这里插入图片描述

再者,可以使用for循环,修改多行多列的数据,在这里介绍了获取的方法

import osimport openpyxlimport openpyxl.stylespath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print(sheet)cell = sheet['A']for i in cell:    i.font = openpyxl.styles.Font(name="微软雅黑", size=20, bold=True, italic=True, color="FF0000")workbook.save('test.xlsx')

在这里插入图片描述

设置对齐格式

Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)
水平对齐:‘distributed’,‘justify’,‘center’,‘left’, ‘centerContinuous’,'right,‘general’
垂直对齐:‘bottom’,‘distributed’,‘justify’,‘center’,‘top’

import osimport openpyxl.stylespath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))cell = sheet['A1']alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)cell.alignment = alignmentworkbook.save('test.xlsx')

在这里插入图片描述

当然,你仍旧可以调用for循环来实现对多行多列的操作

import osimport openpyxl.stylespath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))cell = sheet['A']alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)for i in cell:    i.alignment = alignment    workbook.save('test.xlsx')

在这里插入图片描述

设置行高列宽

设置行列的宽高:

  • row_dimensions[行编号].height = 行高
  • column_dimensions[列编号].width = 列宽
import osimport openpyxlimport openpyxl.stylespath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))# 设置第1行的高度sheet.row_dimensions[1].height = 50# 设置B列的卷度sheet.column_dimensions['B'].width = 20workbook.save('test.xlsx')

在这里插入图片描述

设置所有单元格
(显示的结果是设置所有,有数据的单元格的)

from openpyxl import load_workbookfrom openpyxl.utils import get_column_letterimport osos.chdir(r'C:\Users\asuka\Desktop')workbook = load_workbook('1.xlsx')print(workbook.sheetnames)  # 打印所有的sheet表ws = workbook[workbook.sheetnames[0]]  # 选中最左侧的sheet表width = 2.0  # 设置宽度height = width * (2.2862 / 0.3612)  # 设置高度print("row:", ws.max_row, "column:", ws.max_column)  # 打印行数,列数for i in range(1, ws.max_row + 1):    ws.row_dimensions[i].height = heightfor i in range(1, ws.max_column + 1):    ws.column_dimensions[get_column_letter(i)].width = widthworkbook.save('test.xlsx')

在这里插入图片描述

合并、拆分单元格

合并单元格有下面两种方法,需要注意的是,如果要合并的格子中有数据,即便python没有报错,Excel打开的时候也会报错。

  • merge_cells(待合并的格子编号)
  • merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
import osimport openpyxlimport openpyxl.stylespath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))# 方法1:sheet.merge_cells('A12:B13')# 方法2:sheet.merge_cells(start_row=12, start_column=3, end_row=13, end_column=4)# 加一个居中对齐cell = sheet['A12']alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)cell.alignment = alignmentcell = sheet['C12']alignment = openpyxl.styles.Alignment(horizontal="center", vertical="center", text_rotation=0, wrap_text=True)cell.alignment = alignmentworkbook.save('test.xlsx')

在这里插入图片描述

拆分单元格的方法同上

  • unmerge_cells(待合并的格子编号)
  • unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)

sheet表

创建新的sheet(create_sheet)

create_sheet(“新的sheet名”):创建一个新的sheet表

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))workbook.create_sheet('3号sheet')    # 创建新的sheet表print(workbook.sheetnames) # 查看所有的sheet表workbook.save('test.xlsx')'''当前活动表是:['Sheet1', 'Sheet2', '3号sheet']'''

在这里插入图片描述

修改sheet名字(title)

第11行,使用title修改sheet表的名字

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))sheet.title = '1号sheet'  # 修改sheet表workbook.save('test.xlsx')

在这里插入图片描述

复制sheet表(copy_worksheet)

在“操作”>“修改单元格、excel另存为”中提到了另存为,其实复制sheet表就是一个另存为的过程,你要是在12行代码保存的时候使用第7行的文件名,那么复制的sheet表就保存到自己身上,内容跟copy.xlsx一样。

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))workbook.copy_worksheet(sheet)# 复制sheet表workbook.save('copy.xlsx')

在这里插入图片描述

删除sheet表(remove)

remove(“sheet名”):删除某个sheet表
要删除某sheet表,需要激活这个sheet表,即:将其作为活动表(关于活动表的定义请看前面文章开头写的有)下面8~11行代码展示了原始活动表与手动更换活动表,第13行代码删掉活动表

import osimport openpyxlpath = r"C:\Users\asuka\Desktop"os.chdir(path)  # 修改工作路径workbook = openpyxl.load_workbook('test.xlsx')  # 返回一个workbook数据类型的值sheet = workbook.active  # 获取活动表print('当前活动表是:' + str(sheet))sheet = workbook['3号sheet']     # 手动切换到要删除的sheet表,一旦切换,这张表就是活动表print('当前活动表是:' + str(sheet))workbook.remove(sheet)  # 删除当前活动表print(workbook.sheetnames)workbook.save('test.xlsx')'''当前活动表是:当前活动表是:['Sheet1', 'Sheet2']'''

在这里插入图片描述

操作多个Excel表

其实想用openpyxl玩这个,但是网上用的是别的库,就有点无语,以后熟练的话在自己写一个函数实现吧

背景知识

numpy与pandas

NumPy是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库;pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的,我们需要利用Pandas进行Excel的合并

  1. 下面的代码生成了一个5行3列的包含15个字符的嵌套列表

(注意,第4行代码:15是等于35的,如果是15对应43,或者16对应5*3都会报错)
(注意,第5行代码,虽然5行3列是15个数据,但是可以指定数据从1开头,到16结束)

import numpy as npimport pandas as pdxx = np.arange(15).reshape(5, 3)yy = np.arange(1, 16).reshape(5, 3)print(xx)print(yy)'''[[ 0  1  2] [ 3  4  5] [ 6  7  8] [ 9 10 11] [12 13 14]][[ 1  2  3] [ 4  5  6] [ 7  8  9] [10 11 12] [13 14 15]]'''
  1. 添加表头

使用pandas库的DataFrame来添加表头。关于打印的结果,把最左侧的一列去掉之后会发现结果很和谐,这是因为最左侧的一列代表行号。此时xx变量的类型是

import numpy as npimport pandas as pdxx = np.arange(15).reshape(5, 3)yy = np.arange(1, 16).reshape(5, 3)xx = pd.DataFrame(xx, columns=["语文", "数学", "外语"])yy = pd.DataFrame(yy, columns=["语文", "数学", "外语"])print(xx)print(yy)'''结果:   语文  数学  外语0   0   1   21   3   4   52   6   7   83   9  10  114  12  13  14   语文  数学  外语0   1   2   31   4   5   62   7   8   93  10  11  124  13  14  15'''
  1. 合并两个矩阵

pd.concat(list)括号中传入的是一个列表;
ignore_list=True表示忽略原有索引,重新生成一组新的索引;
或者直接可以写成z = pd.concat([xx,yy],ignore_list=True);
不知道为什么失败,暂时搁浅

xlsxwriter

xlsxwriter模块一般是和xlrd模块搭配使用的,
xlsxwriter:负责写入数据,
xlrd:负责读取数据。

  1. 创建一个工作簿
import xlsxwriterimport ospath = r"C:\Users\asuka\Desktop"os.chdir(path)# 这一步相当于创建了一个新的"工作簿";# "demo.xlsx"文件不存在,表示新建"工作簿";# "demo.xlsx"文件存在,表示新建"工作簿"覆盖原有的"工作簿";workbook = xlsxwriter.Workbook("demo.xlsx")# close是将"工作簿"保存关闭,这一步必须有,否则创建的文件无法显示出来。workbook.close()
  1. 创建sheet表
import xlsxwriterimport ospath = r"C:\Users\asuka\Desktop"os.chdir(path)workbook = xlsxwriter.Workbook("cc.xlsx")   # 创建一个名为cc.xlsx的文件worksheet = workbook.add_worksheet("2018年销售量")  # 创建一个名为“2018年销售量”的sheet表workbook.close()
  1. 写入数据
import xlsxwriterimport ospath = r"C:\Users\asuka\Desktop"os.chdir(path)# 创建一个名为【demo.xlsx】工作簿;workbook = xlsxwriter.Workbook("demo.xlsx")# 创建一个名为【2018年销售量】工作表;worksheet = workbook.add_worksheet("2018年销售量")# 使用write_row方法,为【2018年销售量】工作表,添加一个表头;headings = ['产品', '销量', "单价"]worksheet.write_row('A1', headings)# 使用write方法,在【2018年销售量】工作表中插入一条数据;# write语法格式:worksheet.write(行,列,数据)data = ["苹果", 500, 8.9]for i in range(len(headings)):    worksheet.write(1, i, data[i])workbook.close()

在这里插入图片描述

来源地址:https://blog.csdn.net/weixin_44288604/article/details/120731317

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python实现——处理Excel表格(超详细)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

详解python中xlrd包的安装与处理Excel表格

一、安装xlrd地址 下载后,使用 pip install .whl 安装即好。 查看帮助:>>> import xlrd >>> help(xlrd) Help on package xlrd:NAME xlrdPACKAGE CONTE
2022-06-04

python如何实现读取excel表格

本篇内容介绍了“python如何实现读取excel表格”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、python读取excel表格数据1
2023-07-02

怎么用Python处理excel表格中的数据

这篇文章主要介绍怎么用Python处理excel表格中的数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、基础、常用方法1. 读取excel1、导入模块:import xlrd2、打开文件:x1 = xlrd.o
2023-06-29

pandas实现excel表格处理并读取指定sheet的方法

使用Python的Pandas库可轻松操作Excel表格。通过设置sheet_name参数,可以读取指定的工作表。有三种方法:按名称、按索引或读取多个工作表。read_excel()函数还提供其他参数自定义读取行为,如指定索引、选择列、跳过行等。此外,还可指定区域读取工作表。通过了解这些方法,可以高效地使用Pandas处理Excel数据。
pandas实现excel表格处理并读取指定sheet的方法
2024-04-02

C++异常处理方式实例详解(超级详细!)

程序有时会遇到运行阶段错误,导致程序无法正常执行下去,c++异常为处理这种情况提供了一种功能强大的而灵活的工具,下面这篇文章主要给大家介绍了关于C++异常处理方式的相关资料,需要的朋友可以参考下
2023-05-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录