如何在 Python 中读取具有不同名称的 Excel 工作表
Posted
技术标签:
【中文标题】如何在 Python 中读取具有不同名称的 Excel 工作表【英文标题】:How to read excel sheets with varying names in Python 【发布时间】:2020-12-30 14:08:46 【问题描述】:我是 python 新手,我目前正在尝试通过从大约 20 个电子表格中读取特定工作表来创建数据框。但是,某些电子表格的名称与我要从中获取数据的选项卡不同。
我知道标签被命名为“A”或“AA”
我想知道是否有一种方法可以在 pandas read_excel 中传递这两个名称,因为名称在某些工作表中有所不同。我本质上是在寻找类似的东西
df = pd.read_excel('file.xlsx', sheet_name = 'A' or 'AA')
如果我用 or 传递这两个名称,它会返回一个错误。有没有办法让 read_excel 函数从 Excel 文件中名为“A”或“AA”的工作表中获取数据?
谢谢。
【问题讨论】:
我不使用python,但我猜逻辑是从excel文件中获取工作表名称,然后检查它是否具有“A”或“AA”,然后传递该名称?看看THIS 是否能让你入门。 这些工作表中是否只包含一个选项卡?你能用索引代替名字吗,比如pd.read_excel('file.xlsx', sheet_name = 0)
【参考方案1】:
您可以使用try except 方法,首先尝试打开工作表A
,如果失败,请尝试打开工作表AA
:
try:
df = pd.read_excel('file.xlsx', 'A')
except:
df = pd.read_excel('file.xlsx', 'AA')
如果有一个工作簿同时具有 A
和 AA
工作表名称,或者如果工作簿没有任何工作表名称,则不会产生预期的结果。
【讨论】:
我建议让except
捕获特定异常。这太宽泛了。【参考方案2】:
试试看是否可行:
# this reads in the data and allows access to the sheet names
# also memory efficient
xls = pd.ExcelFile('path_to_file.xls')
# iterate to find sheet name that matches
data = pd.read_excel(xls, sheet_name = [name for name in xls.sheet_names
if name in ('A','AA')])
【讨论】:
【参考方案3】:or
运算符与布尔值完全不同。
试试这个
try:
df = pd.read_excel('file.xlsx', sheet_name='A')
except:
df = pd.read_excel('file.xlsx', sheet_name='AA')
这将尝试打开名为“A”的工作表,如果没有工作表并且 pandas 抛出错误,它将打开名为“AA”的工作表
【讨论】:
以上是关于如何在 Python 中读取具有不同名称的 Excel 工作表的主要内容,如果未能解决你的问题,请参考以下文章