如何在Python中导入EXCEL数据
作者:二十六夜. 发布时间:2022-08-01 01:51:01
一、前期准备
此篇使用两种导入excel数据的方式,形式上有差别,但两者的根本方法实际上是一样的。
首先需要安装两个模块,一个是pandas,另一个是xlrd。
在顶部菜单栏中点击文件,再点击设置,然后在设置中找到以下界面,并点击“+”号。
然后会出现以下界面,在搜索框中分别搜索以上两个模块:pandas/xlrd。
选中搜索出来的模块,并点击左下角的的安装按钮,便可将模块安装到自己电脑中。
需要注意的是,xlrd的新版本并不支持xlsx格式的excel表格,如果安装新版本的xlrd模块则会导致在运行代码的时候报错,而解决办法则是选择较低版本的xlrd模块进行安装。一般推荐安装1.2.0的版本即可。
当两个模块都安装好后,便可以开始编写代码用python来读取excel表格里的数据了。
二、编写代码基本思路
编写代码前需要思考打开EXCEL表格需要几步,或者说是哪些步骤。
(1)通过文件路径打开文件的工作簿。
(2)根据名称找到工作表 。
(3)根据行(nrows)和列(ncols)读取单元格的位置。
(4)通过单元格位置获取单元格当中的数据(数值)。
三、编写代码读取数据
3.1
首先是第一种方式,即导入pandas的方式来读取EXCEL表格中的数据。
其中 r"D:\杂货\编码数据.xlsx" 为表格路径,sheet_name="Sheet1"为所读取的表单Sheet1。
pd.read_excel()为读取表格所使用的方法。
import pandas as pd#导入pandas库
fm=pd.read_excel(r"D:\杂货\编码数据.xlsx",sheet_name="Sheet1")#用该方法读取表格和表单里的单元格的数据
print(fm)
运行以上代码便可输出以下结果,由于表单的数据过多,因此在输出时其中间数据会以“···”的形式省略掉。
3.2
接下来是使用导入xlrd模块的方式来读取表格数据。
其中使用了xlrd.open_workbook()方法来打开EXCEL文件。
sheet_by_name()方法用于打开EXCEL文件中的Sheet表单。
通过两个for循环遍历出每个单元格的“行”和“列”的值,相当于坐标系中的“横轴”和“纵轴”,由此可以定义一个点的位置,EXCEL表格中同理,通过行列的数值可以得到指定单元格中的值。
最后将读取得到的每一个单元格的值放入到dataset这个列表中,并通过pprint输出该列表(若pprint报错则需要到设置中添加pprint,方法同本文“一、前期准备”部分),输出结果可见下图。
注:网络上有些代码示例在for循环中的range()函数可能会写成xrange()函数,而在python3中两者的功能都能在range()函数中实现,因此可直接使用range()函数,而不必太纠结于xrange()函数的问题。
import xlrd#导入xlrd库
file='D:/杂货/编码数据.xlsx'#文件路径
wb=xlrd.open_workbook(filename=file)#用方法打开该文件路径下的文件
ws=wb.sheet_by_name("Sheet1")#打开该表格里的表单
dataset=[]
for r in range(ws.nrows):#遍历行
col=[]
for l in range(ws.ncols):#遍历列
col.append(ws.cell(r, l).value)#将单元格中的值加入到列表中(r,l)相当于坐标系,cell()为单元格,value为单元格的值
dataset.append(col)
from pprint import pprint#pprint的输出形式为一行输出一个结果,下一个结果换行输出。实质上pprint输出的结果更为完整
pprint(dataset)
由于使用了循环遍历的方法,因此该处输出的结果为EXCEL文件中所包含的所有的单元格的值,因此输出结果很长,与前一部分的输出结果稍有不同。
四、结语
以上便是本篇的所有内容,编写该文的目的除了记录自学python数据处理的过程外,顺便将一些个人碰到的问题摘取下来,给出个人当时解决该类问题的方法与经验,并分享出来,适用于从零开始学习的朋友。并非专业的编程博主,存在的表述不正确等问题还请指出与理解。本篇为基础准备部分,后续会逐步分享其他的数据分析操作的教程。
来源:https://blog.csdn.net/Deng333333555/article/details/125092526


猜你喜欢
- 基于MySQL分布式锁实现原理及代码工欲善其事必先利其器,在基于MySQL实现分布式锁之前,我们要先了解一点MySQL锁自身的相关内容MyS
- 时间object转换datetime实例首先说一下:1/17/07 has the format “%m/%d/%y&a
- laravel入门简介作为PHP最常用的框架之一,Laravel的框架目录布置得尤其清晰,适用于各种类型的项目开发。今天来记录下larave
- 本文为大家分享了python查看微信消息撤回的具体代码,供大家参考,具体内容如下1.安装itchatitchat是一个开源的python微信
- socket解析HTTP请求内容思路1. 解析HTTP请求的头部HTTP请求头部的结束符行为"\r\n",可以按行读取H
- 最近公司在研发app,选择了基于Vue框架的vux组件库,现总结在实现上拉刷新功能遇到的坑:1.问题:只刷新一次,解决方法:需要自己手动重置
- 1. watch 与 computed 的巧妙结合如上图,一个简单的列表页面。你可能会这么做: created(){ this.
- 函数最重要的目的是方便我们重复使用相同的一段程序。将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复
- 图表库下面的类库可以让你很简单就能创建复杂的图表和图片。当然,它们需要GD库的支持。pChart - 一个可以创建统计图的库。Libchar
- 这里说的“相对路径”是相对于“主调文件”所在的文件夹。#include file #include file后面跟的是文件的“相对路径”,不
- MySQL根据不同条件联查不同表的数据项目开发中遇到类似的需求。Mybatis 中的< if >标签只能判断where部分,不能
- 前言最近在python里面用json读取json文件,可是老是不成功,特此记录一下。预备知识:def load(fp, cls=None,
- 本机中原pyinstaller版本为3.5版本,本打算通过 pip install --upgrade pyinstaller进行升级,竟然
- 在raft中,选取成功后集群就可以正常工作,一次正常的客户端提案过程如下:客户端连接到leader,发起提案leader收到提案后将提案,包
- 这篇文章主要介绍了基于python traceback实现异常的获取与处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 本文实例讲述了PHP实现数组根据某个字段进行水平合并,横向合并。分享给大家供大家参考,具体如下:PHP数组水平合并,横向合并,两条数据合并成
- NumPy数组(2、数组的操作)基本运算数组的算术运算是按元素逐个运算。数组运算后将创建包含运算结果的新数组。>>> a=
- 表结构如下面代码创建 CREATE TABLE test_tb ( TestId int not null identity(1,1) pr
- 本文实例讲述了Python简单读写Xls格式文档的方法。分享给大家供大家参考,具体如下:1. 模块安装使用pip install命令安装,即
- 前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序。简单说一下流程:先用c