【发布时间】:2020-02-12 08:36:14
【问题描述】:
有多种方法可以将 excel 数据读入 python。 Pandas 还提供了用于读写的 API
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
df = pd.read_excel('File.xlsx', sheetname='Sheet1')
效果很好。
但是:将每张工作表的表格直接访问到 pandas 数据框的方法是什么??
上图显示了一张包含表格 SEPARATED THAN CELL (1,1) 的表格。
此外,工作表可能包含多个表格(VBA 中的列表对象)。
我在任何地方都找不到将它们读入熊猫的方法。
注意 1:无法修改工作簿以将所有表格移至单元格 (1,1)。 注意2:我想只使用熊猫(如果可能的话)并尽量减少导入其他库的需要。但是没有其他方法我准备使用其他lybray。无论如何,例如,我无法使用 xlwings 进行管理。
here好像可以解析excel文件,但不提供表格污染,只针对完整的表格。
documentation of pandas 似乎不提供这种可能性。
谢谢。
【问题讨论】:
-
如果每个表的行为都相同,您现在可以使用
pd.read_excel(file, skiprows=n)中的跳过行在单个语句df = pd.concat(pd.read_excel(file, sheet_name=None, skiprows=n), ignore_index=True)中访问所有工作表或使用pd.ExcelWriter(file) -
当我回答@Florian 时,我的想法是excel 文件不是我的,我无法打开它并为每张工作表更改python 代码。应该有办法。 Listobject 是 excel 中一个非常好的和强大的对象。与我通过 id 访问工作表集合的方式相同,我的想法是通过 id 访问每个工作表中的表列表集合。
-
在 read_excel(file, skiprows=n) 中有技能行而不是 skipcols 也很奇怪
-
您必须编写一个自定义函数来迭代每个工作表或每个文件以查找标题开始的位置,然后将这些参数传递给 pandas
-
有什么办法可以跳过列吗?
标签: python excel vba pandas listobject