使用Python来解析电子表格数据
Feb 20, 2025 am 09:46 AM处理大型组织和企业中常见的电子表格数据,并将其导入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中文网其他相关文章!

热门文章

热门文章

热门文章标签

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)