excel是什么
Microsoft Excel是一个使用非常广泛的电子表格程序。它的用户友好性和吸引人的功能使其成为数据科学中常用的工具。对于excel来说,整个excel文件称为工作簿,工作簿中的每个页称为工作表,工作表又由单元格组成。这是区别于csv格式的一个重要的特征,也就意味着excel文档的处理需要考虑工作表、行、列,才能准确实现数据操作。
读取excel文件的方法主要有两种,一个方法是使用专门的excel读写包,另一个方法是使用pandas。
方法1
1. xlrd、xlwt
(1)读取excel数据
import xlrd #导入相应的库data = xlrd.open_workbook(r'C:\Users\Desktop\285城市人均GDP.xlsx') # 打开xls文件table = data.sheets()[0] # 打开第一张表nrows = table.nrows # 获取表的行数for i in range(nrows): # 循环逐行打印 if i == 0: # 跳过第一行 continue # 跳到前面再执行循环 print(table.row_values(i)) # 打印数
(2)写入excel数据,只支持2003xls的写入
import xlwtworkbook = xlwt.Workbook() sheet = workbook.add_sheet('sheet1',cell_overwrite_ok=True)sheet.write(0,0,'武汉市')sheet.write(0,1,'10579.5')sheet.write(0,2,'第一')sheet.write(1,0,'襄阳市')workbook.save(r'C:\Users\Desktop\湖北城市GDP.xls')print('创建excel文件完成')
2. openpyxl
openpyxl模块可实现对excel文件的读、写和修改,只能处理xlsx文件,不能处理xls文件,使用之前同样需要先安装该模块,再导入 import openpyxl。
对于openpyxl,行数和列数都从1开始,单元格的行和列也从1开始。例如sheet.cell(1,2).value表示第一行第二列单元格的内容
(1)读取excel数据
import openpyxl wb = openpyxl.load_workbook(r'C:\Users\Desktop\285城市人均GDP.xlsx') # 打开excel文件,获取工作簿对象ws = wb.active # 从表单中获取单元格的内容 print(ws.cell(row=1, column=2)) # 获取第一行第二列的单元格print(ws.cell(row=1, column=2).value)for i in range(1, 8, 2): # 获取1,3,4,7 行第二列的值 print(i, ws.cell(row=i, column=2).value) colC = ws['C'] # 获取整个C列print(colC)row6 = ws[6] # 获取第6行print(row6,type(row6))for cell in colC: # 打印colC单元格中的值内容 print(cell.value)
(2)写入excel数据
book = openpyxl.Workbook() #创建工作簿,如果写入中文为乱码,可添加参数encoding = 'utf-8'sheet = book.create_sheet('sheet1',0) #0表示创建的工作表在工作薄最前面sheet.cell(row=2,column=5).value=99 #向单元格写入内容:sheet1.cell(row=3,column=5,value=100)book.save(r'C:\Users\Desktop\湖北城市GDP.xlsx') #保存工作簿,默认保存在py文件相同路径下,如果该路径下有相同文件,会被新创建的文件覆盖print('创建excel文件完成')
方法2
1. pands读取excel数据
import pandas as pdpath = r'C:\Users\Desktop\湖北城市GDP.xlsx'pd.read_excel(path)
2. pands写入excel数据
lst =[['武汉','13410.34亿元','1'],['襄阳','4064.90亿元','2'],['宜昌','3857.17亿元','3']]dt = pd.DataFrame(lst)dt.to_excel(path)print('创建excel文件完成')