新版本的Pandas使用以下界面加载Excel文件:
read_excel('path_to_file.xls', 'Sheet1', index_col=None, na_values=['NA'])
但是如果我不知道可用的床单呢?
例如,我正在使用excel文件,这些文件包含以下表格
数据1,数据2。。。,数据N,foo,bar
但是我不知道什么是先验的。
有没有办法从Pandas中的excel文档中获取工作表列表?
这是我找到的最快的方法,灵感来自@divingTobi的回答。所有基于xlrd、openpyxl或熊猫的答案对我来说都很慢,因为它们都先加载整个文件。
from zipfile import ZipFile
from bs4 import BeautifulSoup # you also need to install "lxml" for the XML parser
with ZipFile(file) as zipped_file:
summary = zipped_file.open(r'xl/workbook.xml').read()
soup = BeautifulSoup(summary, "xml")
sheets = [sheet.get("name") for sheet in soup.find_all("sheet")]
应该将第二个参数(sheetname)显式指定为None。这样地:
df = pandas.read_excel("/yourPath/FileName.xlsx", None);
“df”是数据帧字典中的所有工作表,您可以通过运行以下命令进行验证:
df.keys()
像这样的结果:
[u'201610', u'201601', u'201701', u'201702', u'201703', u'201704', u'201705', u'201706', u'201612', u'fund', u'201603', u'201602', u'201605', u'201607', u'201606', u'201608', u'201512', u'201611', u'201604']
更多详情请咨询熊猫医生:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html
您仍然可以使用ExcelFile类(以及sheet_names
属性):
xl = pd.ExcelFile('foo.xls')
xl.sheet_names # see all sheet names
xl.parse(sheet_name) # read a specific sheet to DataFrame
有关更多选项,请参阅解析文档。。。
问题内容: 新版本的Pandas使用以下界面加载Excel文件: 但是,如果我不知道可用的图纸怎么办? 例如,我正在使用以下工作表的excel文件 数据1,数据2 …,数据N,foo,bar 但我不知道先验。 有什么方法可以从Pandas的Excel文档中获取工作表列表吗? 问题答案: 您仍然可以使用ExcelFile类(和属性): 有关更多选项, 请参阅文档以进行解析…
我尝试了各种方式添加Excel电子表格。但问题总是相同的。 我尝试了这里提出的代码, 将工作表添加到现有excel文件 使用Apache POI for Java在现有Excel工作簿中创建新工作表 问题是:
问题内容: 刚开始使用pandas和python。 我有一个工作表,已读入数据框并应用了前向填充(ffill)方法。 然后,我想创建一个包含两个工作表的Excel文档。 在应用填充方法之前,一个工作表将在数据框中包含数据,而在下一个工作表将应用了填充方法的数据框。 最终,我打算为数据框的特定列中的每个数据唯一实例创建一个工作表。 然后,我想对结果应用某些vba格式-但我不确定哪个dll或插件,或者
问题内容: 在0.20中有一个有趣的API,称为new,可让您创建间隔索引。 给定一些示例数据: 您可以这样创建索引: s的一个有趣属性是,您可以使用以下命令执行间隔检查: 我想知道如何将此操作应用于整个索引。例如,给定一些数字,我如何检索该数字适合的间隔的布尔掩码? 我可以想到: 有更好的方法可以做到这一点吗? 问题答案: 如果您对性能感兴趣,可以对IntervalIndex进行优化以进行搜索。
我有一个很大的电子表格文件(.xlsx),我正在使用python处理它。碰巧我需要那个大文件中两个选项卡(工作表)中的数据。其中一个选项卡包含大量数据,而另一个选项卡只有几个方形单元格。 当我使用,我觉得整个文件都已加载(不仅仅是我感兴趣的工作表)。因此,当我使用该方法两次(每张工作表一次)时,我实际上不得不忍受整个工作簿被读取两次(即使我们只使用指定的工作表)。 如何仅加载特定的工作表与?