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)
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)
就这样。
您可以使用 pandas 读取多个工作表:
excel_file = pd.ExcelFile('myfile.xls')
df1 = excel_file.parse('Sheet1')
df2 = excel_file.parse('Sheet2')
Run Code Online (Sandbox Code Playgroud)
因此,只需依次打开一个文件,从所需的工作表中读取并处理数据框即可。