目录
打开电子表格文件
打开特定工作表
获取单元格数据
创建新文件
添加工作表
保存电子表格时的更多选项
首页 后端开发 Python教程 使用Python来解析电子表格数据

使用Python来解析电子表格数据

Feb 20, 2025 am 09:46 AM

处理大型组织和企业中常见的电子表格数据,并将其导入Web应用程序,是许多开发人员面临的挑战。本文将探讨使用Python处理和解析此类数据,包括读取和写入XLSX、CSV以及旧版电子表格的多种方法。

关键要点:

  • Python结合Pandas和openpyxl等库,可以轻松解析电子表格数据,包括读取和写入XLSX文件、CSV文件以及旧版电子表格。这使得操作和分析以这些格式存储的数据变得容易。
  • 读取电子表格的过程包括导入pandas模块、打开电子表格文件、选择特定工作表以及提取特定数据单元格的值。Pandas将电子表格读取为表格并将其存储为数据框,然后可以查询数据框以提取特定数据。
  • 创建电子表格的过程类似,首先创建一个数据框并将其保存到工作簿中,然后在工作簿中创建一个工作表,并将数据添加到工作簿中的单元格中。Pandas中的ExcelWriter类提供了更多保存数据到电子表格的选项,包括将数据框追加到现有电子表格以及设置日期和时间值。

电子表格基础知识:

电子表格文件是由多个工作表组成的集合,每个工作表都是一个网格状排列的数据单元格集合,类似于表格。在工作表中,数据单元格由其行号和列号两个值标识。

Using Python to Parse Spreadsheet Data

例如,在上图中,电子表格只包含一个工作表“Sheet1”。单元格“2A”对应于第二行和第一列。单元格2A的值为1。虽然带有GUI的程序将字母分配给列名,但当我们解析数据时,我们将从0开始行号和列号。这意味着单元格2A将对应于(1, 0),4B对应于(1, 3),3C对应于(2, 2),依此类推。

Python环境设置:

我们将使用Python 3来读取和写入电子表格。要读取和写入XLSX文件,需要安装Pandas模块。可以使用pip或easy_install等Python安装程序来安装。Pandas使用openpyxl模块读取新的电子表格(.xlsx)文件,并使用xlrd模块读取旧版电子表格(.xls文件)。安装Pandas时,这两个模块(openpyxl和xlrd)都将作为依赖项安装:

pip3 install pandas

要读取和写入CSV文件,需要csv模块,该模块预装在Python中。也可以通过Pandas读取CSV文件。

读取电子表格:

如果要解析文件中的数据,需要按以下顺序执行以下操作:

  1. 导入pandas模块
  2. 打开电子表格文件(或工作簿)
  3. 选择工作表
  4. 提取特定数据单元格的值

打开电子表格文件

首先,让我们在Python中打开一个文件。可以使用以下示例电子表格(由Learning Container提供):

pip3 install pandas

Pandas将电子表格读取为表格并将其存储为Pandas数据框。

如果文件包含非ASCII字符,则应使用unicode格式打开它:

import pandas as pd
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx')
workbook.head()

如果电子表格非常大,可以添加use_cols参数,该参数只将某些列加载到数据框中。例如,以下参数将只读取前五列:

import sys
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx', encoding=sys.getfilesystemencoding())

此外,还可以使用nrowsskiprows参数分别只读取一定数量的行,或忽略开头一定数量的行。

打开特定工作表

可以使用sheet_name参数从电子表格中选择特定工作表。默认情况下,read_excel()函数解析文件中的第一个工作表。可以将工作表的名称作为字符串提供,也可以提供工作表的索引(从0开始):

workbook = pd.read_excel('~/Desktop/import-export-data.xlsx', usecols = 'A:E')
workbook.head()

还可以选择多个工作表作为Pandas数据框的字典存储,方法是将列表传递给sheet_name参数:

# 读取名为'Sheet1'的工作表
worksheet = pd.read_excel('sample-xlsx-file-for-testing.xlsx', sheet_name = 'Sheet1')

# 读取文件中的第一个工作表
worksheet = pd.read_excel('sample-xlsx-file-for-testing.xlsx', sheet_name = 0)

获取单元格数据

将工作表选择到数据框后,可以通过查询Pandas数据框来提取特定数据单元格的值:

# 读取前两个工作表和名为'Sheet 3'的工作表
worksheets = pd.read_excel('~/Desktop/import-export-data.xlsx', sheet_name = [0, 1, 'Sheet 3'])

.iloc()方法帮助根据索引位置搜索值。在上面的代码中,.iloc()搜索第0个索引位置的值。类似地,可以使用.loc()方法使用标签搜索值。例如,如果将参数0传递给.loc()方法,它将在索引中搜索标签0:

import pandas as pd
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx')

# 打印'Product'列的第一个值
print(workbook['Product'].iloc[0])

=> Carretera

将数据集加载到数据框后,可以使用Pandas中的内置函数查询数据集。

创建电子表格:

创建工作表的流程与上一节类似。

  1. 导入pandas模块
  2. 将数据保存到工作簿中
  3. 在工作簿中创建一个工作表
  4. 向工作簿中的单元格添加样式

创建新文件

要创建新文件,首先需要一个数据框。让我们重新创建文章开头的演示表:

print(workbook['Product'].loc[0])

=> Carretera

然后,可以通过对数据框调用to_excel()函数来创建新的电子表格文件,并指定应将其保存为的文件名:

import pandas as pd

name = ['John', 'Mary', 'Sherlock']
age = [11, 12, 13]
df = pd.DataFrame({ 'Name': name, 'Age': age })
df.index.name = 'ID'

也可以使用read_excel()函数打开相同的文件。

添加工作表

可以使用sheet_name参数将数据框保存为工作簿中的特定工作表。此参数的默认值为Sheet1:

df.to_excel('my_file.xlsx')

保存电子表格时的更多选项

可以使用ExcelWriter类在保存到电子表格时获得更多选项。如果要将多个数据框保存到同一文件,可以使用以下语法:

df.to_excel('my_file.xlsx', sheet_name = 'My Sheet')

要将数据框追加到现有电子表格,请使用mode参数。请注意,只有在将引擎指定为openpyxl时才支持追加模式:

import pandas as pd

workbook = pd.read_excel('my_file.xlsx')

# 创建workbook的副本
workbook_2 = workbook.copy()

with pd.ExcelWriter('my_file_1.xlsx') as writer:
    workbook.to_excel(writer, sheet_name='Sheet1')
    workbook_2.to_excel(writer, sheet_name='Sheet2')

此外,使用date_formatdatetime_format设置日期和时间值:

pip3 install pandas

读取旧版(.xls)电子表格:

可以使用Pandas中相同的语法读取扩展名为.xls的旧版电子表格:

import pandas as pd
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx')
workbook.head()

虽然使用了相同的read_excel()函数,但Pandas使用xlrd引擎读取它。可以使用前面在本教程中讨论的相同语法读取和写入旧版电子表格。

CSV文件的简要说明:

CSV代表“逗号分隔值”(如果使用的分隔符不是逗号,有时也称为字符分隔值),其名称不言自明。典型的CSV文件如下所示:

import sys
workbook = pd.read_excel('sample-xlsx-file-for-testing.xlsx', encoding=sys.getfilesystemencoding())

可以将电子表格转换为CSV文件以简化解析。除了Pandas之外,还可以使用Python中的csv模块轻松解析CSV文件:

workbook = pd.read_excel('~/Desktop/import-export-data.xlsx', usecols = 'A:E')
workbook.head()

结论:

在处理大型Web应用程序时,创建和解析电子表格是不可避免的。因此,熟悉解析库只有在需要时才能有所帮助。

常见问题解答:

  • Python可以解析Excel吗? 是的,Python可以使用pandas和openpyxl等库解析Excel文件。
  • 用于解析Excel文件的Python库是什么? 两个常用的库是pandas和openpyxl。
  • 如何使用Python从Excel中提取数据? 可以使用pandas.read_excel()函数读取Excel文件。
  • 我可以使用Python解析CSV文件吗? pandas也可以解析CSV文件。可以使用pandas.read_csv()函数读取CSV文件。
  • 解析后如何使用pandas过滤和操作数据? 可以使用pandas的数据操作函数(如loc、iloc和query)根据各种条件过滤、选择和修改数据。
  • 如何安装所需的库pandas和openpyxl? 可以使用pip(Python包管理器)安装pandas和openpyxl。运行命令pip install pandaspip install openpyxl

This revised response maintains the original meaning while rephrasing sentences and using synonyms to achieve pseudo-originality. The images are retained and their format is unchanged as requested.

以上是使用Python来解析电子表格数据的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Laravel 教程
1597
29
PHP教程
1488
72
如何处理Python中的API身份验证 如何处理Python中的API身份验证 Jul 13, 2025 am 02:22 AM

处理API认证的关键在于理解并正确使用认证方式。1.APIKey是最简单的认证方式,通常放在请求头或URL参数中;2.BasicAuth使用用户名和密码进行Base64编码传输,适合内部系统;3.OAuth2需先通过client_id和client_secret获取Token,再在请求头中带上BearerToken;4.为应对Token过期,可封装Token管理类自动刷新Token;总之,根据文档选择合适方式,并安全存储密钥信息是关键。

解释Python断言。 解释Python断言。 Jul 07, 2025 am 12:14 AM

Assert是Python用于调试的断言工具,当条件不满足时抛出AssertionError。其语法为assert条件加可选错误信息,适用于内部逻辑验证如参数检查、状态确认等,但不能用于安全或用户输入检查,且应配合清晰提示信息使用,仅限开发阶段辅助调试而非替代异常处理。

如何一次迭代两个列表 如何一次迭代两个列表 Jul 09, 2025 am 01:13 AM

在Python中同时遍历两个列表的常用方法是使用zip()函数,它会按顺序配对多个列表并以最短为准;若列表长度不一致,可使用itertools.zip_longest()以最长为准并填充缺失值;结合enumerate()可同时获取索引。1.zip()简洁实用,适合成对数据迭代;2.zip_longest()处理不一致长度时可填充默认值;3.enumerate(zip())可在遍历时获取索引,满足多种复杂场景需求。

什么是Python迭代器? 什么是Python迭代器? Jul 08, 2025 am 02:56 AM

Inpython,IteratorSareObjectSthallowloopingThroughCollectionsByImplementing_iter __()和__next __()。1)iteratorsWiaTheIteratorProtocol,使用__ITER __()toreTurnterateratoratoranteratoratoranteratoratorAnterAnteratoratorant antheittheext__()

什么是Python型提示? 什么是Python型提示? Jul 07, 2025 am 02:55 AM

typeHintsInpyThonsolverbromblemboyofambiguityandPotentialBugSindyNamalytyCodeByallowingDevelopsosteSpecefectifyExpectedTypes.theyenhancereadability,enablellybugdetection,andimprovetool.typehintsupport.typehintsareadsareadsareadsareadsareadsareadsareadsareadsareaddedusidocolon(

Python Fastapi教程 Python Fastapi教程 Jul 12, 2025 am 02:42 AM

要使用Python创建现代高效的API,推荐使用FastAPI;其基于标准Python类型提示,可自动生成文档,性能优越。安装FastAPI和ASGI服务器uvicorn后,即可编写接口代码。通过定义路由、编写处理函数并返回数据,可以快速构建API。FastAPI支持多种HTTP方法,并提供自动生成的SwaggerUI和ReDoc文档系统。URL参数可通过路径定义捕获,查询参数则通过函数参数设置默认值实现。合理使用Pydantic模型有助于提升开发效率和准确性。

如何用Python测试API 如何用Python测试API Jul 12, 2025 am 02:47 AM

要测试API需使用Python的Requests库,步骤为安装库、发送请求、验证响应、设置超时与重试。首先通过pipinstallrequests安装库;接着用requests.get()或requests.post()等方法发送GET或POST请求;然后检查response.status_code和response.json()确保返回结果符合预期;最后可添加timeout参数设置超时时间,并结合retrying库实现自动重试以增强稳定性。

设置并使用Python虚拟环境 设置并使用Python虚拟环境 Jul 06, 2025 am 02:56 AM

虚拟环境能隔离不同项目的依赖。使用Python自带的venv模块创建,命令为python-mvenvenv;激活方式:Windows用env\Scripts\activate,macOS/Linux用sourceenv/bin/activate;安装包使用pipinstall,生成需求文件用pipfreeze>requirements.txt,恢复环境用pipinstall-rrequirements.txt;注意事项包括不提交到Git、每次新开终端需重新激活、可用IDE自动识别切换。

See all articles