使用 xlwings 将整个工作表转换为熊猫数据框

Coo*_*pix 6 python excel pandas xlwings

感谢panda,我们可以使用“read_excel”函数将整张表读入数据框。

我想使用 xlwings 使用相同的方法。事实上,我的工作簿已经打开,我不想使用 read_excel 函数(顺便说一下,女巫执行时间太长)而是使用 xlwings 的强大功能将整个工作表保存到数据帧中。

事实上,使用 xlwings 我们可以将一个范围保存到一个数据帧中。这意味着我必须知道范围大小。但我想有更好(更快!)的方法来做到这一点,不是吗?

你有这样做的想法吗?非常感谢 !

编辑:我想将一张工作表的一个例子转移到一个数据帧中,因为 read_excel 会这样做。

Name Point  Time    Power   Test1   Test2   Test3   Test4 ##
Test    0   1   10  4   24  144
        2   20  8   48  288
        3   30  12  72  432
        4   40  16  96  576
        5   50  20  120 720
        6   60  24  144 864
        7   70  28  168 1008
        8   80  32  192 1152
        9   90  36  216 1296
        10  100 40  240 1440
        11  110 44  264 1584
        12  120 48  288 1728
Run Code Online (Sandbox Code Playgroud)

kat*_*yna 14

您可以使用内置转换器将其放在一行中:

df = sht.range('A1').options(pd.DataFrame, 
                             header=1,
                             index=False, 
                             expand='table').value
Run Code Online (Sandbox Code Playgroud)


The*_*uto 8

xlwings 确实提供了 api 来加载整个工作表。为此,请使用used_rangeapi 来读取工作表的整个已使用部分。(当然,我们不想获得未使用的行值,不是吗?;-))无论如何,这里有一个关于如何执行此操作的代码片段:

import pandas as pd
import xlwings as xw

workbook = xw.Book('some.xlsx')
sheet1 = workbook.sheets['sheet1'].used_range.value
df = pd.DataFrame(sheet1)
Run Code Online (Sandbox Code Playgroud)

就这样。


Mik*_*ler 4

您可以使用 pandas 读取多个工作表:

excel_file = pd.ExcelFile('myfile.xls')
df1 = excel_file.parse('Sheet1')
df2 = excel_file.parse('Sheet2') 
Run Code Online (Sandbox Code Playgroud)

因此,只需依次打开一个文件,从所需的工作表中读取并处理数据框即可。