当前位置:   article > 正文

使用Python对Excel表数据的读取、写入、导出_用python遍历excel指定行并输出其他行的数据

用python遍历excel指定行并输出其他行的数据

处理Excel表格时,当数据量较大,或计算较为复杂时,使用python进行数据批量处理更为容易。

关于读取excel表格
在向编译器中导入excel表格时,我们应当首先导入对应的包,否则极易出现报错、数据导入不成功等问题,当excel导入不成功时,优先考虑对应的包没有安装或为成功引用
具体需要导入的包如下

import books as books
import xlrd
import pandas as pd
import numpy as nd
from openpyxl import load_workbook
  • 1
  • 2
  • 3
  • 4
  • 5

其中,pandas是在excel表格读取、数据查看是使用最为简单方便的包。但是在对表格数据进行修改或对空白单元格写入数据时,我认为openpyxl更为方便
使用pandas具体导入excel的流程

books1 = pd.read_excel(r'C:\Users\Lenovo\Desktop\问题2\问题二数据.xlsx',index_col='ID',sheet_name='Sheet1')

  • 1
  • 2

其中,books1是我们将excel引入后在后续代码中引用该excel表格时使用的变量名。pd.read_excel()是读取excel表格的函数;r’绝对地址’是我们要读入表格的绝对位置,即表格在那个磁盘哪个文件夹中叫什么,注意xlsx不要省略;index_col是我们用来索引的值,比如你要从上到下遍历200行数据,除了使用row()这种外,最简单的方法便是在表格的最前面添加一列,如我用的’ID’,然后写上1-200,这样方便我们用for循环进行遍历;sheet_name=‘要选择的表的名字’,大多时候,我们的excel表格内存在多个表格,比如Sheet1、Sheet2等,当我们要读取对应表格时,应当在sheet_name后面写上表的名字。
那么,当我们按照上述步骤运行代码后没有报错,那么我们如何检测是否将表格数据导入成功了呢?这个时候,我们可以使用books1.iloc[[i], [j]].values[0][0]来检测表格第i行第j列的数据,对应原表格数据,看是否成功导入。注意,python中下标是从0开始,而excel是从1开始,所以当我们要查找或使用对应单元格数据时,我们应该多次测试,找到对应的行、列表达式。这样我们才能得到自己想要的数据。

#可以通过输出一个数据,检验是否引用正确
print(books1.iloc[[0], [2]].values[0][0])
  • 1
  • 2

当我们要对表格具体单元格进行写入或者更改时,我更建议大家使用openpyxl包进行书写,因为pandas我一直没有写入成功,具体使用如下:

from openpyxl import load_workbook
wb = load_workbook(r'C:\Users\Lenovo\Desktop\问题2\问题二数据.xlsx')
sheet = wb.active
sheet.cell(row=i, column=j).value = '要修改成的数值'
wb.save(r'C:\Users\Lenovo\Desktop\问题2\问题二数据.xlsx')
  • 1
  • 2
  • 3
  • 4
  • 5

sheet.cell(row=i, column=j)表示我们要对第i行第j列单元格进行修改,同样因为索引值不同,我认为每次使用前都应该多次测试,这样才能避免位置错误。对于load_workbook()与pandas导入是相同的,但是关于如何在excel不同表格之间进行切换,如pandas的sheet_name(),我还不是很清楚,待我了解清楚后在进行填写。wb.save()是我们用来将修改后的表格和数据进行储存的函数,但是对于openpyxl我只会在当前表格进行修改,等我了解如何导出一个新表之后,再来为大家解答。
关于如何不修改原来表的内容,而降修改后的信息保存为另一个表格,这个时候我们用到的是pandas包

df = pd.DataFrame(books1)
df.to_excel(r'C:\Users\Lenovo\Desktop\季度\达标天数.xlsx')
  • 1
  • 2

pd.DataFrame(‘我们先前使用的变量名来表示的excel’),接着通过df.to_excel(‘要导出到的绝对位置’)来将修改后的表格进行导出。
关于python对excel的处理,暂时就这么多,等我学到新的内容再来对大家进行分析。
创作不易,欢迎点赞!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/434129
推荐阅读
相关标签
  

闽ICP备14008679号