Pandas read

您所在的位置:网站首页 panda处理表格 Pandas read

Pandas read

2024-06-28 04:43| 来源: 网络整理| 查看: 265

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 年的销售数据,我们要分别读取每个表格的数据。下面是代码示例:

import pandas as pd # 定义 Excel 文件名,sheet 名 filename = 'sales_report.xlsx' sheetname = 'Sheet1' # 获取 ExcelFile 对象 xls = pd.ExcelFile(filename) # 获取 sheet 中的表格名称列表 sheets = xls.sheet_names # 遍历表格名称列表,读取数据 for table_name in sheets: table = pd.read_excel(xls, sheet_name=sheetname, header=0, skiprows=None) print(f'Table {table_name}:\n{table.head()}')

在上面的代码中,我们首先定义了文件名和 sheet 名,接着使用 pd.ExcelFile 方法获取 Excel 文件对象,然后通过 .sheet_names 属性获取 Excel 文件中所有 sheet 的名称,并将这些名称储存在 sheets 变量中。接下来使用 for 循环遍历 sheets 列表,读取每个 sheet 中的表格,并输出前五行数据。

将多个表格全部读入

当我们需要读取一个 sheet 中所有表格的数据时,可以将 sheet_name 设置为 None,这样 Pandas 会将 sheet 中所有表格读入,并返回一个字典。其中字典的 key 为表格名称,value 为表格中的数据。代码如下:

import pandas as pd # 定义 Excel 文件名和 sheet 名 filename = 'sales_report.xlsx' sheetname = 'Sheet1' # 读取数据 data = pd.read_excel(filename, sheet_name=None, header=0, skiprows=None) # 获取字典中表格名称和数据 for table_name, table in data.items(): print(f'Table {table_name}:\n{table.head()}\n')

在上面的代码中,我们首先定义了文件名和 sheet 名,接着使用 pd.read_excel 方法获取 Excel 文件对象,并将 sheet_name 参数设置为 None。这样 Pandas 会将 Excel 文件中的所有数据读入并放进一个字典中,字典的 key 为表格名称,value 为表格数据。

接下来使用 for 循环遍历字典中所有条目,获取每个表格的名称和表格的数据,然后输出前五行数据。

如果我们想要将多个表格的数据合并成一个数据表,可以使用 Pandas 的 concat 方法将多个表格合并

如果我们想要将多个表格合并成一个数据表,可以使用 Pandas 的 concat 方法:

import pandas as pd # 定义 Excel 文件名和 sheet 名 filename = 'sales_report.xlsx' sheetname = 'Sheet1' # 读取数据 data = pd.read_excel(filename, sheet_name=None, header=0, skiprows=None) # 如果不同表格中的列名相同,可以使用 pd.concat 方法将多个表格合并为一个数据表 merged_data = pd.concat(data, axis=0, sort=False) print(merged_data.head())

上面的代码中,我们先读取出所有的表格数据,并将它们合并成一个新的数据表 merged_data。pd.concat 方法的第一个参数是一个字典(即读取 Excel 文件的结果),表示需要合并的数据表;axis 表示合并的方向,0 表示纵向合并,即在行方向上将两个数据表连接起来;sort=False 表示不进行排序。

输出结果如下:

日期 销售额 0 2018-01-01 100.0 1 2018-01-02 80.0 2 2018-01-03 NaN 3 2018-01-04 NaN 4 2018-01-05 120.0 ... ... ... 1090 2020-12-26 200.0 1091 2020-12-27 NaN 1092 2020-12-28 70.0 1093 2020-12-29 150.0 1094 2020-12-30 90.0 总结

通过本文,我们介绍了如何使用 Pandas 的 read_excel 方法读取一个 Excel 文件中一个 sheet 中的多个表格,包括获取 Excel 文件和 sheet 的基本信息、将多个表格全部读入和将多个表格合并成一个数据表。这些方法可以帮助我们更方便地进行数据处理与分析,提高工作效率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3