我有很多不同的表(以及Excel工作表中的其他非结构化数据)。我需要从Excel工作表“data”的“Sheet2”创建超出范围“A3:D20”的数据框。
所有的例子,我遇到钻取到表级,但不是如何挑选它从一个确切的范围。
import openpyxl
import pandas as pd
wb = openpyxl.load_workbook('data.xlsx')
sheet = wb.get_sheet_by_name('Sheet2')
range = ['A3':'D20'] #<-- how to specify this?
spots = pd.DataFrame(sheet.range) #what should be the exact syntax for this?
print (spots)
一旦我得到了这个,我计划在列A中查找数据,并在列B中找到它的对应值。
编辑1:我意识到openpyxl花费的时间太长了,所以我把它改为pandas.read_excel('data.xlsx','Sheet2')
,至少在那个阶段它要快得多。
编辑2:目前,我只把我的数据放在一个工作表中,并且:
- 已删除所有其他信息
- 添加了列名,
- 在最左边的列上应用了
index_col
- 然后使用
wb.loc[]
3条答案
按热度按时间z2acfund1#
使用pandas read_excel documentation中的以下参数:
我想象着这个称呼会是这样的:
编辑:
在Pandas的后续版本中,
parse_cols
已被重命名为usecols
,因此上述调用应重写为:i86rm4rw2#
一种方法是使用openpyxl模块。
下面是一个例子:
polhcujo3#
我用PandasO.25的答案进行了测试,效果很好
所以:我需要在前两行之后的数据;选择所需的行(5)和列A至H。
小心@shane答案的需要改进和更新与Pandas的新参数