处理大型组织和企业中常见的电子表格数据,并将其导入Web应用程序,是许多开发人员面临的挑战。本文将探讨使用Python处理和解析此类数据,包括读取和写入XLSX、CSV以及旧版电子表格的多种方法。
关键要点:
- Python结合Pandas和openpyxl等库,可以轻松解析电子表格数据,包括读取和写入XLSX文件、CSV文件以及旧版电子表格。这使得操作和分析以这些格式存储的数据变得容易。
- 读取电子表格的过程包括导入pandas模块、打开电子表格文件、选择特定工作表以及提取特定数据单元格的值。Pandas将电子表格读取为表格并将其存储为数据框,然后可以查询数据框以提取特定数据。
- 创建电子表格的过程类似,首先创建一个数据框并将其保存到工作簿中,然后在工作簿中创建一个工作表,并将数据添加到工作簿中的单元格中。Pandas中的ExcelWriter类提供了更多保存数据到电子表格的选项,包括将数据框追加到现有电子表格以及设置日期和时间值。
电子表格基础知识:
电子表格文件是由多个工作表组成的集合,每个工作表都是一个网格状排列的数据单元格集合,类似于表格。在工作表中,数据单元格由其行号和列号两个值标识。
例如,在上图中,电子表格只包含一个工作表“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文件。
读取电子表格:
如果要解析文件中的数据,需要按以下顺序执行以下操作:
- 导入pandas模块
- 打开电子表格文件(或工作簿)
- 选择工作表
- 提取特定数据单元格的值
打开电子表格文件
首先,让我们在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())
此外,还可以使用nrows
和skiprows
参数分别只读取一定数量的行,或忽略开头一定数量的行。
打开特定工作表
可以使用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中的内置函数查询数据集。
创建电子表格:
创建工作表的流程与上一节类似。
- 导入pandas模块
- 将数据保存到工作簿中
- 在工作簿中创建一个工作表
- 向工作簿中的单元格添加样式
创建新文件
要创建新文件,首先需要一个数据框。让我们重新创建文章开头的演示表:
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_format
和datetime_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 pandas
和pip 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中文网其他相关文章!

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

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

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

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

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

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

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

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


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

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

SublimeText3 Linux新版
SublimeText3 Linux最新版

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

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