搜索
首页后端开发Python教程使用Python来解析电子表格数据

处理大型组织和企业中常见的电子表格数据,并将其导入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
如何使用Python查找文本文件的ZIPF分布如何使用Python查找文本文件的ZIPF分布Mar 05, 2025 am 09:58 AM

本教程演示如何使用Python处理Zipf定律这一统计概念,并展示Python在处理该定律时读取和排序大型文本文件的效率。 您可能想知道Zipf分布这个术语是什么意思。要理解这个术语,我们首先需要定义Zipf定律。别担心,我会尽量简化说明。 Zipf定律 Zipf定律简单来说就是:在一个大型自然语言语料库中,最频繁出现的词的出现频率大约是第二频繁词的两倍,是第三频繁词的三倍,是第四频繁词的四倍,以此类推。 让我们来看一个例子。如果您查看美国英语的Brown语料库,您会注意到最频繁出现的词是“th

我如何使用美丽的汤来解析HTML?我如何使用美丽的汤来解析HTML?Mar 10, 2025 pm 06:54 PM

本文解释了如何使用美丽的汤库来解析html。 它详细介绍了常见方法,例如find(),find_all(),select()和get_text(),以用于数据提取,处理不同的HTML结构和错误以及替代方案(SEL)

如何使用TensorFlow或Pytorch进行深度学习?如何使用TensorFlow或Pytorch进行深度学习?Mar 10, 2025 pm 06:52 PM

本文比较了Tensorflow和Pytorch的深度学习。 它详细介绍了所涉及的步骤:数据准备,模型构建,培训,评估和部署。 框架之间的关键差异,特别是关于计算刻度的

python对象的序列化和避难所化:第1部分python对象的序列化和避难所化:第1部分Mar 08, 2025 am 09:39 AM

Python 对象的序列化和反序列化是任何非平凡程序的关键方面。如果您将某些内容保存到 Python 文件中,如果您读取配置文件,或者如果您响应 HTTP 请求,您都会进行对象序列化和反序列化。 从某种意义上说,序列化和反序列化是世界上最无聊的事情。谁会在乎所有这些格式和协议?您想持久化或流式传输一些 Python 对象,并在以后完整地取回它们。 这是一种在概念层面上看待世界的好方法。但是,在实际层面上,您选择的序列化方案、格式或协议可能会决定程序运行的速度、安全性、维护状态的自由度以及与其他系

Python中的数学模块:统计Python中的数学模块:统计Mar 09, 2025 am 11:40 AM

Python的statistics模块提供强大的数据统计分析功能,帮助我们快速理解数据整体特征,例如生物统计学和商业分析等领域。无需逐个查看数据点,只需查看均值或方差等统计量,即可发现原始数据中可能被忽略的趋势和特征,并更轻松、有效地比较大型数据集。 本教程将介绍如何计算平均值和衡量数据集的离散程度。除非另有说明,本模块中的所有函数都支持使用mean()函数计算平均值,而非简单的求和平均。 也可使用浮点数。 import random import statistics from fracti

用美丽的汤在Python中刮擦网页:搜索和DOM修改用美丽的汤在Python中刮擦网页:搜索和DOM修改Mar 08, 2025 am 10:36 AM

该教程建立在先前对美丽汤的介绍基础上,重点是简单的树导航之外的DOM操纵。 我们将探索有效的搜索方法和技术,以修改HTML结构。 一种常见的DOM搜索方法是EX

哪些流行的Python库及其用途?哪些流行的Python库及其用途?Mar 21, 2025 pm 06:46 PM

本文讨论了诸如Numpy,Pandas,Matplotlib,Scikit-Learn,Tensorflow,Tensorflow,Django,Blask和请求等流行的Python库,并详细介绍了它们在科学计算,数据分析,可视化,机器学习,网络开发和H中的用途

使用Python处理专业错误使用Python处理专业错误Mar 04, 2025 am 10:58 AM

在本教程中,您将从整个系统的角度学习如何处理Python中的错误条件。错误处理是设计的关键方面,它从最低级别(有时是硬件)一直到最终用户。如果y

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

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