xlrdを使用してxlsスプレッドシートからデータを読み取っています。まず、必要なデータを含む列のインデックスを収集します(すべてのインスタンスで常に同じ列にあるとは限りません)。
amr_list, pssr_list, inservice_list = [], [], []
for i in range(sh.ncols):
for j in range(sh.nrows):
if 'amrprojectnumber' in sh.cell_value(j,i).lower():
amr_list.append(sh.cell_value(j,i))
if 'pssrnumber' in sh.cell_value(j,i).lower():
pssr_list.append(sh.cell_value(j,i))
if 'inservicedate' in sh.cell_value(j,i).lower():
inservice_list.append(sh.cell_value(j,i))
これで、新しいブックにデータを書き込むために使用する必要のある3つのリストができました。行の値は関連しています。したがって、1つのリスト内のアイテムのインデックスは、他のリスト内のアイテムの同じインデックスに対応します。
にamr_list
は繰り返し文字列値があります。例えば:
['4006BA','4006BA','4007AC','4007AC','4007AC']
はpssr_list
常にと同じ値を共有しますamr_list
が、追加情報があります。
['4006BA(1)','4006BA(2)','4007AC(1)','4007AC(2)','4007AC(3)']
最後に、inservice_list
可変の日付が含まれる場合と含まれない場合があります(Excelから読み取った場合)。
[40780.0, '', 40749.0, 40764.0, '']
これは私がデータから望む結果です:
amr = { '4006BA':[('4006BA(1)',40780.0),('4006BA(2)','')], '4007AC':[('4007AC(1)',40749.0),('4007AC(2)',40764.0),('4007AC(3)','')] }
しかし、私はそこにたどり着く簡単な方法を理解するのに苦労しています。前もって感謝します。