2012-05-05 18 views
0

私は次のコードを作成した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 

以下のように見えるXLSスプレッドシート持っている:私は何をする必要があるか、立ち往生していますどこ

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に入力することは実行可能ではありません。番号列に指定した値に対応する単位列から値を返します

Unit[Number.index(value)] 

:あなたはこの操作を行う必要があると思います。この場合

答えて

0

Pythonシーケンスのindex()関数は、シーケンス内の指定された値の最初の出現のインデックスを返します。この値はインデックスとして使用され、Unitから対応するエントリが検索されます。

+0

ig0774、これをありがとう、それは完全に働いた、私はこれに関連するもう一つの質問があります。私がコード内でルックアップを行うと、セルの中で私はウィジェット1を読みとりました。セルのプリントを実行すると、ウィジェット1が読み込まれます。ウィジェット1をタイプすると、定義されていないエラーが表示されます。u'widget1と入力すると、未完成の文字列であると考えて実行前にエラーが発生します。ありがとう –

+0

最後のコメントを無視し、ちょうど列のテキストを作って動作させる –

関連する問題