在应用python爬取数据的过程中,往往需要存储数据,而除开应用数据库存储数据以外,excel格式应该算是比较常用的存储格式,而关于excel文档数据的读写,在python中实现的方法有很多,概因python强大的第三方库。
这里本渣渣以过往爬取数据的坑,为大家简单总结Python读写excel文档的方法,仅供参考,毕竟本渣渣菜的很!!
涉及到篇幅,这里先给出上篇,即读取excel的方法!
其实是本渣渣准备跑路了,so,so...
读取excel表格数据
这里本渣渣准备了一个简单的excel表格数据,如图示例:
网上有很多相关教程方法,但是都找不到示例的表格数据,这里本渣渣把表格数据和示例代码一起打包给各位老哥,供老哥们学习和参考使用!
源码及excel示例文件打包
关注本渣渣公众号:二爷记
后台回复: 读取表格
即可获取所有文件
方法一:openpyxl 读取Excel表格数据
#openpyxl读取Excel表格数据
# -*- coding: UTF-8 -*-
#@author:微信:huguo00289
#20210330
import openpyxl #导入模块openpyxl
wb = openpyxl.load_workbook('code.xlsx') #获取表格文件
#获取表格里的表文件sheet
sheets = wb.sheetnames
print(sheets)
#获取表文件指定的sheet
ws = wb[sheets[0]]
print(ws)
#获取某个单元格数据,比如获取A1的值
print(ws['A1'].value)
# 读取指定的某一行单元格数据,比如获取A1的值
cell = ws.cell(row=1, column=1).value
print(cell)
# 获取最大行数
print(ws.max_row)
# 获取最大列数
print(ws.max_column)
# 按列读取所有数据,每一列的单元格放入一个元组中
print(ws.columns) # 直接打印,打印结果是一个可迭代对象,我们可以转换成列表来查看
# 按行读取所有数据,每一行的单元格放入一个元组中
rows = ws.rows
# 我们可以通过for循环以及value来查看单元格的值
for row in list(rows): # 遍历每行数据
case = [] # 用于存放一行数据
for c in row: # 把每行的每个单元格的值取出来,存放到case里
case.append(c.value)
print(case)
#使用for循环获取表格所有数据
all_content=[]
for i in range(1, ws.max_row+1):
row_content = []
for j in range(1, ws.max_column+1):
value = ws.cell(row=i, column=j).value
row_content.append(value)
all_content.append(row_content)
print(row_content)
print('*******************************************************')
print(all_content)
print('===========================================================')
运行效果:
方法二:xlrd 读取Excel表格数据
# xlrd读取Excel表格数据
# -*- coding: UTF-8 -*-
#@author:微信:huguo00289
#20210330
import xlrd #导入模块 xlrd
# 打开文件
wb = xlrd.open_workbook('code.xlsx')
# 获取所有sheet
sheets=wb.sheet_names()
print(sheets) # [u'sheet1', u'sheet2']
#获取表sheet
sh= wb.sheet_by_name(sheets[0])
#获取表sheet名
print(sh.name)
#获取表sheet行数
print(sh.nrows)
#获取表sheet列数
print(sh.ncols)
# 获取单元格内容
print(sh.cell(1, 0).value)
print(sh.row(1)[0].value)
# 获取整行和整列的值(数组)
rows = sh.row_values(3) # 获取第四行内容
print(rows)
cols = sh.col_values(1) # 获取第二列内容
print(cols)
# 获取所有行数据
for rx in range(sh.nrows):
# rx 行
print(sh.row(rx))
# 获取所有行数据
for rx in range(sh.nrows):
print(sh.row_values(rx))
运行效果:
方法三:pandas读取excel表格数据
# pandas读取excel表格数据
# -*- coding: UTF-8 -*-
#@author:微信:huguo00289
#20210330
import pandas as pd
df=pd.read_excel('code.xlsx') #默认读取excel的第一个表单sheet1
df2=pd.read_excel('code.xlsx',sheet_name='028beauty.cn') #通过指定表单方式获取
#默认读取前5行数据
data=df.head()
print(data)
#获取表格相关信息,行数,列数
height,width = df.shape
print(height,width,type(df))
#读取某一列数据信息
fss=df['网址']
print(fss)
#读取某一列某个数据
print(fss[5])
#读取某一列数据
fs=fss.values
print(fs)
fs=list(fs) #转换为列表
print(fs)
运行效果:
·················END·················
你好,我是二大爷,
革命老区外出进城务工人员,
互联网非早期非专业站长,
喜好python,写作,阅读,英语
不入流程序,自媒体,seo . . .
公众号不挣钱,交个网友。
读者交流群已建立,找到我备注 “交流”,即可获得加入我们~
听说点 “在看” 的都变得更好看呐~
关注关注二大爷呗~给你分享python,写作,阅读的内容噢~
扫一扫下方二维码即可关注我噢~
关注我的都变秃了
说错了,都变强了!
不信你试试
扫码关注最新动态
公众号ID:eryeji