Pandas read_excel:读取一个 sheet 中的多个表格
在本文中,我们将介绍如何使用 Pandas 的 read_excel 方法来读取一个 Excel 文件中一个 sheet 里的多个表格。
在很多实际场景中,我们经常需要将同一个主题下的不同数据都记录在同一个 Excel 文件的同一个 sheet 中。比如一个销售报告,可能包含不同时间段的销售数据,我们可以将这些数据拆分成多个表格,然后分别记录在一个 sheet 中,这样方便数据的统计与比较。
阅读更多:Pandas 教程
Excel 文件和 sheet 的基本信息
在实际操作中,我们需要使用 Pandas 模块中的 read_excel 方法来读取 Excel 文件中的数据。在读取 data sheet 时,我们常常需要注意以下几个参数:
io
:文件路径、ExcelFile 对象或者 Pandas 中提供的远程地址等。-
sheet_name
(默认为 0):可以是 sheet 名,也可以是 sheet 的索引号,也可以为 None。如果为 None,则返回所有 sheet 的数据。 -
header
:用作列名的行号(索引),默认为 0(第一行)。如果设置为 None,则第一行也作为数据行。 -
skiprows
:需要忽略的行数(从开始处算起),默认为 0。
这篇文章主要介绍如何在一个 sheet 中读取多个表格,所以我们不仅需要设置好读取表格的参数,同时也要获取 Excel 文件和 sheet 的基本信息。
假设有一个 sales_report.xlsx 文件,里面有三个 sheet,数据分别为 2018 年、2019 年和 2020 年的销售数据,我们要分别读取每个表格的数据。下面是代码示例:
在上面的代码中,我们首先定义了文件名和 sheet 名,接着使用 pd.ExcelFile 方法获取 Excel 文件对象,然后通过 .sheet_names 属性获取 Excel 文件中所有 sheet 的名称,并将这些名称储存在 sheets 变量中。接下来使用 for 循环遍历 sheets 列表,读取每个 sheet 中的表格,并输出前五行数据。
将多个表格全部读入
当我们需要读取一个 sheet 中所有表格的数据时,可以将 sheet_name 设置为 None,这样 Pandas 会将 sheet 中所有表格读入,并返回一个字典。其中字典的 key 为表格名称,value 为表格中的数据。代码如下:
在上面的代码中,我们首先定义了文件名和 sheet 名,接着使用 pd.read_excel 方法获取 Excel 文件对象,并将 sheet_name 参数设置为 None。这样 Pandas 会将 Excel 文件中的所有数据读入并放进一个字典中,字典的 key 为表格名称,value 为表格数据。
接下来使用 for 循环遍历字典中所有条目,获取每个表格的名称和表格的数据,然后输出前五行数据。
如果我们想要将多个表格的数据合并成一个数据表,可以使用 Pandas 的 concat 方法将多个表格合并
如果我们想要将多个表格合并成一个数据表,可以使用 Pandas 的 concat 方法:
上面的代码中,我们先读取出所有的表格数据,并将它们合并成一个新的数据表 merged_data。pd.concat 方法的第一个参数是一个字典(即读取 Excel 文件的结果),表示需要合并的数据表;axis 表示合并的方向,0 表示纵向合并,即在行方向上将两个数据表连接起来;sort=False 表示不进行排序。
输出结果如下:
总结
通过本文,我们介绍了如何使用 Pandas 的 read_excel 方法读取一个 Excel 文件中一个 sheet 中的多个表格,包括获取 Excel 文件和 sheet 的基本信息、将多个表格全部读入和将多个表格合并成一个数据表。这些方法可以帮助我们更方便地进行数据处理与分析,提高工作效率。