2012-05-05 31 views
0

我有一个xls的电子表格,看起来像下面VLOOKUP XLRD的Python

Number Code   Unit 
1  Widget 1  20.0000 
2  Widget 2  4.6000 
3  Widget 3  2.6000 
4  Widget 4  1.4500 

我已经创建了下面的代码:

import xlrd 
wb=xlrd.open_workbook('pytest.xls') 
xlsname = 'pytest.xls' 
book = xlrd.open_workbook(xlsname) 

sd={} 
for s in book.sheets(): 
    sd[s.name] = s 
sheet=sd["Prod"] 

Number = sh.col_values(0) 
Code = sh.col_values(1) 
Unit = sh.col_values(2) 

现在,这是我被卡住,我需要做的是问他们选择什么号码的问题,因为这个例子可以说他们选择3,它需要打印答案的单位。所以如果他们选择4,它会打印1.450。这个文件长10K,所以手动输入数据到Python是不可行的。

回答

0

在这种情况下,你只需要做到这一点:

Unit[Number.index(value)] 

将返回从对应于数列中指定的值中的单位列的值。

Python序列上的index()函数返回序列中提供值的第一次出现的索引。这个值被用来作为从Unit找到相应条目的索引。

+0

ig0774,非常感谢你,它的工作完美,我还有一个问题涉及到这一点。如果我查看代码,在单元格内部,我提到它读取了widget1,当我打印单元格时,它读取了u'widget1。如果我输入小工具1,它表示未定义的错误,如果我在运行之前键入u'widget1,它会认为它是未完成的字符串。谢谢 –

+0

忽略最新评论,只是列文本,它的作品 –