python pandas 读excel类
import pandas as pd
'''特例说明
file1="a20201220.xlsx"
sheetname='Sheet1'
df=pd.read_excel(file1,sheetname,usecols="A:D")#读取第A-D四列所有内容
df=pd.read_excel(file1,sheetname,usecols=[1,3])#读取第1,第3列所有内容
df=pd.read_excel(file1,sheetname,usecols="A:B,D")#读取第A 第B 第D三列所有内容
df=pd.read_excel(file1,sheetname,usecols="A:B,D",header=3,nrows=15)#读取第A 第B 第D的第4行开始的连续15行内容
df=pd.read_excel(file1,sheetname,usecols="A:B,D",nrows=15)#读取第A 第B 第D的第1行开始的连续15行内容
print(df.values)
df=pd.read_excel(file1,sheet_name=None,index_col=0)#读取所有工作表名称
print(type(df))#<class 'dict'>
for i in df:
print(i)#工作表名称'''
class DoExcela:
def do_alldata(self,filename,sheetname,head=None):#返回列表,列表元素是某行内容
df=pd.read_excel(filename,sheetname,header=head)
lb=[]
for i in df.values:
lb.append(i)
return lb
def do_hangdata(self,filename,sheetname,hang,head=None):#指定行号,返回列表,列表元素是指定行的某列内容
df=pd.read_excel(filename,sheetname,header=head)
lb=[]
for i in df.values[hang]:
lb.append(i)
return lb
def do_liexhdata(self,filename,sheetname,lie,head=None):#指定列序号,返回列表,列表元素是指定行的某列内容
df=pd.read_excel(filename,sheetname,header=head)
lb=[]
for i in df[lie].values:
lb.append(i)
return lb
def do_liemingdata(self,filename,sheetname,lie,head=None):#指定列名称,返回列表,列表元素是指定行的某列内容
df=pd.read_excel(filename,sheetname)
lb=[]
for i in df[lie]:
lb.append(i)
return lb
def do_danyuandata(self,file_name:str,sheet_name:str,hang_name:int,lie_name:int):#返回单元格的内容,类型随数据变化
df=pd.read_excel(file_name,sheet_name,header=None)#从第0行读取
data1=df.iloc[hang_name,lie_name]
return data1
def do_sheetname(self,filename):#以列表形式返回所有工作表名称
df=pd.read_excel(filename,sheet_name=None)
return list(df)
def do_sheetshu(self,filename):#以列表形式返回所有工作表名称
df=pd.read_excel(filename,sheet_name=None)
return len(list(df))
#下面的函数是读取指定单元格区域的值存入列表
def do_quyudata(self,file_name:str,sheet_name:str,zsh_name:int,zsl_name:int,yxh_name:int,yxl_name:int):
#变量依次为文件名(表名)、工作表名称、左上行、左上列、右下行、右下列
df=pd.read_excel(file_name,sheet_name,header=None)#从第0行读取
alldata=[]#定义一个装所有数据的空列表
# 获取行索引,如果设置header=None,这里应该改为(1,df.shape[0])
for i in range(zsh_name-1,yxh_name):
#Erowdata={}#定义一个装每行数据的字典
for j in range(zsl_name,yxl_name):#获取列索引
# df.columns[j]获取第j列表头,df.iloc[i,j]获取第i行第j列数据
alldata.append(df.iloc[i,j])
return alldata def do_alldata1(self,file_name:str,sheet_name:str)->'返回一个列表嵌套字典':
'''通过excel表格路径和表单名字获取表单完整数据,以列表内嵌套字典的方式返回'''
# 文件有表头索引是从第二行开始为0,如果设置header=None,索引从
df=pd.read_excel(file_name,sheet_name)#读取
alldata=[]#定义一个装所有数据的空列表
# 获取行索引,如果设置header=None,这里应该改为(1,df.shape[0])
for i in range(df.shape[0]):
rowdata={}#定义一个装每行数据的字典
for j in range(df.shape[1]):#获取列索引
# df.columns[j]获取第j列表头,df.iloc[i,j]获取第i行第j列数据
rowdata[df.columns[j]]=df.iloc[i,j]
alldata.append(rowdata)
# print(alldata)
return alldata
def do_liedata(self,file_name:str,sheet_name:str,lie_name:int)->'返回一个列表嵌套字典':
'''通过excel表格路径和表单名字获取表单完整数据,以列表内嵌套字典的方式返回'''
# 文件有表头索引是从第二行开始为0,如果设置header=None,索引从
df=pd.read_excel(file_name,sheet_name,header=None)#从第一行开始读取
#df=pd.read_excel(file_name,sheet_name)#从第二行开始读取
alldata=[]#定义一个装所有数据的空列表
# 获取行索引,如果设置header=None,这里应该改为(1,df.shape[0]
rowdata=[]#定义一个装每行数据的字典
for i in range(df.shape[0]):
rowdata.append(df.iloc[i,lie_name]) # print(alldata)
return rowdata
def do_hangdata1(self,file_name:str,sheet_name:str,hang_name:int)->'返回一个列表嵌套字典':
'''通过excel表格路径和表单名字获取表单完整数据,以列表内嵌套字典的方式返回'''
# 文件有表头索引是从第二行开始为0,如果设置header=None,索引从
df=pd.read_excel(file_name,sheet_name,header=None)#从第0行读取
#df=pd.read_excel(file_name,sheet_name)#从第一行读取
alldata=[]#定义一个装所有数据的空列表
# 获取行索引,如果设置header=None,这里应该改为(1,df.shape[0]
rowdata=[]#定义一个装每行数据的字典
for i in range(df.shape[1]):
rowdata.append(df.iloc[hang_name,i]) # print(alldata)
return rowdata #下面的函数是读取指定单元格区域的值存入字典:键是显示列的顺序,值是单元格的值
def do_quyudatazj(self,file_name:str,sheet_name:str,zsh_name:int,zsl_name:int,yxh_name:int,yxl_name:int):
#变量依次为文件名(表名)、工作表名称、左上行、左上列、右下行、右下列
df=pd.read_excel(file_name,sheet_name,header=None)#从第0行读取
alldata=[]#定义一个装所有数据的空列表
# 获取行索引,如果设置header=None,这里应该改为(1,df.shape[0])
for i in range(zsh_name-1,yxh_name):
rowdata={}#定义一个装每行数据的字典
for j in range(zsl_name,yxl_name):#获取列索引
# df.columns[j]获取第j列表头,df.iloc[i,j]获取第i行第j列数据
rowdata[df.columns[j]]=df.iloc[i,j]
alldata.append(rowdata)
return alldata
#openpyxl读取excel
from openpyxl import load_workbook
class DoExcel:
def get_data(self, file_name, sheet_name):
wb = load_workbook(file_name) # linux路径
sheet = wb[sheet_name]
test_data = []
for i in range(2, sheet.max_row + 1):
row_data = {}
for j in range(1, sheet.max_column + 1):
row_data[sheet.cell(1, j).value] = sheet.cell(i, j).value
test_data.append(row_data)
return test_data
file1="a20201220.xlsx"
af=DoExcela()
all=af.do_alldata1(file_name=file1,sheet_name="Sheet1")
lie=af.do_liedata(file_name=file1,sheet_name="Sheet1",lie_name=0)
hang=af.do_hangdata1(file_name=file1,sheet_name="Sheet1",hang_name=0)
danyuan=af.do_danyuandata(file_name=file1,sheet_name="Sheet1",hang_name=0,lie_name=3)
quyu=af.do_quyudata(file_name=file1,sheet_name="Sheet1",zsh_name=1,zsl_name=1,yxh_name=4,yxl_name=4)
print(type(hang))
quyu1=af.do_quyudatazj(file_name=file1,sheet_name="Sheet1",zsh_name=1,zsl_name=1,yxh_name=4,yxl_name=4)
for i in hang:
print(type(i))
break
print(danyuan)
for i in quyu:
print("quyu",i)
for i in quyu1:
print("quyu1",i)
print("单行")
for i in hang:
print(i)
#break
hang1=af.do_hangdata(file1,"Sheet1",0)
print("第0行",hang1,type(hang1))
sheet1=af.do_sheetname(file1)
print(sheet1)
sheet2=af.do_sheetshu(file1)
print(sheet2)
all1=af.do_alldata(file1,"Sheet1")
print(all1,type(all1))
lie1=af.do_liexhdata(file1,"Sheet1",0)
print(lie1,type(lie1))
dany=af.do_danyuandata(file1,"Sheet1",2,3)
print(dany,type(dany))
python pandas 读excel类的更多相关文章
- Python Pandas操作Excel
Python Pandas操作Excel 前情提要 ☟ 本章使用的 Python3.6 Pandas==0.25.3 项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日 ...
- Python pandas 获取Excel重复记录
pip install pandas pip install xlrd 大量记录的时候,用EXCEL排序处理比较费劲,EXCEL程序动不动就无响应了,用pands完美解决. # We will use ...
- python pandas读写excel
import pandas as pd import numpy as np df = pd.read_csv("result.csv") # csv # df = pd.read ...
- python pandas写入excel文件
pandas读取.写入csv数据非常方便,但是有时希望通过excel画个简单的图表看一下数据质量.变化趋势并保存,这时候csv格式的数据就略显不便,因此尝试直接将数据写入excel文件. pandas ...
- python xlrd读Excel表
1 xlrd第三方库 注意:xlrd较新版本不支持读xlsx表,需安装1.2.0版本(pip install xlrd==1.2.0)或使用其他库. xlrd库官方文档:https://xlrd.re ...
- 整理总结 python 中时间日期类数据处理与类型转换(含 pandas)
我自学 python 编程并付诸实战,迄今三个月. pandas可能是我最高频使用的库,基于它的易学.实用,我也非常建议朋友们去尝试它.--尤其当你本身不是程序员,但多少跟表格或数据打点交道时,pan ...
- Python利用pandas处理Excel数据的应用
Python利用pandas处理Excel数据的应用 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...
- Python用Pandas读写Excel
Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具.Pandas提供了大量能使我们快速便捷地处理数据的函数和方法. Pandas官方文档 ...
- 【python基础】利用pandas处理Excel数据
参考:https://www.cnblogs.com/liulinghua90/p/9935642.html 一.安装第三方库xlrd和pandas 1:pandas依赖处理Excel的xlrd模块, ...
随机推荐
- Oracle数据库使用pfile启动还是spfile启动---oracle
查看数据库使用pfile启动还是spfile启动 9i版本以后,一般是使用spfile启动,但前提是有这个spfile文件,如果同时存在spfile和pfile文件,会优先选择spfile模式启动数据 ...
- Go语言介绍(背景、特点)
一.go语言的背景 Go是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go(又称 Golang)是 Google 的 Rob Pike(罗勃.派克),Ken Thompson(肯· ...
- 手把手教你实现三种绑定方式(call、apply、bind)
关于绑定首先要说下this的指向问题. 我们都知道: 函数调用时this指向window 对象调用函数时this指向对象本身 看下面得例子: // 1 function test(){ const n ...
- TVM 优化 ARM GPU 上的移动深度学习
TVM 优化 ARM GPU 上的移动深度学习 随着深度学习的巨大成功,将深度神经网络部署到移动设备的需求正在迅速增长.与桌面平台上所做的类似,在移动设备中使用 GPU 既有利于推理速度,也有利于能源 ...
- python读取配置文件,yaml模块读取yml文件
ymal文件编写语法参考http://www.ruanyifeng.com/blog/2016/07/yaml.html ymal在python中的安装:pip install pyyaml yml文 ...
- C# 强行锁定 第三方 外部 应用程序窗体窗口的分辨率尺寸大小 禁止鼠标拖拽改变窗口大小
我们也许会有一些奇怪的需求,比如说禁止一个外部程序的窗口大小更改. 如果我们没法修改外部程序的代码,那要怎么做呢? 当然,我们可以通过DLL注入目标程序的方式去Hook或registry一个事件来检测 ...
- 深入理解java虚拟机笔记Chapter3-内存分配策略
内存分配策略 新生代和老年代的 GC 操作 新生代 GC 操作:Minor GC 发生的非常频繁,速度较块. 老年代 GC 操作:Full GC / Major GC 经常伴随着至少一次的 Minor ...
- WEB 页面认证
1:安装htpasswd工具生成加密文件 安装工具 # yum install httpd-tools # htpasswd -cm /etc/httpd/passwd/password useraN ...
- 如何使用perf进行程序分析
1.安装. sudo apt-get install linux-tools 如果提示没有可安装候选.请输入: sudo apt-get install linux-perf-version 其中ve ...
- 在VScode 中使用RT-Thread Studio初体验
前言 工欲善其事,必先利其器,VScode是什么东东,想必大家都非常熟悉了,丰富的插件,有好的开发界面,是很多程序开发者的不二之选,RT-Thread竟然也开发了Vscode插件,真的是非常的nice ...