2012-05-05 50 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

忽略最新評論,只是列文本,它的作品 –