openpyxl 读出 excel table 并将其传递给 pandas DataFrame
openpyxl read out excel table and pass it to a pandas DataFrame
我想用 xlwings 将 excel tables (*) 的内容读入 pandas DataFrames。
我知道:
关于:
openpyxl.worksheet.table 模块
此类模块提供了一系列用于创建和修改 excel table 的功能,但我不知道如何简单地将 table 传递到 DataFrame 中,我也不知道知道这是否真的可行(即我不认为有一种方法可以将 xlwings 对象读入 Pandas)
有什么想法吗?
注意事项:
1) 请注意我说的是 tables 而不是 sheets。(我知道 pd.read_excel('name.xlsx', sheetname='Sheet1')
2) 我也知道一种解决方法是在阅读 sheet 时跳过行或列,这对我来说是行不通的。我需要引用一个命名为 table.
3) 非 excel 用户经常误解 Excel 中的 table 是什么。 table 是一个命名范围(您可以转到 INSERT 选项卡,您会看到 "Table")。该对象在 VBA 中被称为 Listobject。所以 table 不是 excel 中的简单范围,也不是命名范围,它不仅如此,它实际上是 pandas 数据框的 excel 版本。
你试过xlwings模块的内置转换器了吗?他们似乎有预建函数可以转换为 Pandas DataFrame as well as a Pandas Series.
这是他们给出的简单示例:
>>> sht = xw.Book().sheets[0]
>>> df = sht.range('A1:D5').options(pd.DataFrame, header=2).value
>>> df
a b
c d e
ix
10 1 2 3
20 4 5 6
30 7 8 9
我想用 xlwings 将 excel tables (*) 的内容读入 pandas DataFrames。
我知道:
此类模块提供了一系列用于创建和修改 excel table 的功能,但我不知道如何简单地将 table 传递到 DataFrame 中,我也不知道知道这是否真的可行(即我不认为有一种方法可以将 xlwings 对象读入 Pandas)
有什么想法吗?
注意事项: 1) 请注意我说的是 tables 而不是 sheets。(我知道 pd.read_excel('name.xlsx', sheetname='Sheet1')
2) 我也知道一种解决方法是在阅读 sheet 时跳过行或列,这对我来说是行不通的。我需要引用一个命名为 table.
3) 非 excel 用户经常误解 Excel 中的 table 是什么。 table 是一个命名范围(您可以转到 INSERT 选项卡,您会看到 "Table")。该对象在 VBA 中被称为 Listobject。所以 table 不是 excel 中的简单范围,也不是命名范围,它不仅如此,它实际上是 pandas 数据框的 excel 版本。
你试过xlwings模块的内置转换器了吗?他们似乎有预建函数可以转换为 Pandas DataFrame as well as a Pandas Series.
这是他们给出的简单示例:
>>> sht = xw.Book().sheets[0]
>>> df = sht.range('A1:D5').options(pd.DataFrame, header=2).value
>>> df
a b
c d e
ix
10 1 2 3
20 4 5 6
30 7 8 9