PythonでExcel自動操作 辞書リスト格納の考え方

参考書:もっとラクに! もっと速く! Excel×Python データ処理自由自在

Excel事務処理の自動化を検討するにあたって、以下の参考書が非常に参考になる。

これを読めばExcel台帳からのデータ抽出、転記、ソート等自動化の基礎処理ができるようになる。

 

自動化のための下準備:辞書リスト格納

上記参考書について、第1版P186~の辞書リストを作成する手順についてちょっとつまずいたため、考え方を整理する。

#辞書のリストを作る
shipment_list = []
for row in sh.iter_rows():
    if row[0].row == 1:
        header_cells = row
    else:
        row_dic = {}
        for v, k in zip(header_cells, row):
            row_dic[v.value] = k.value
        shipment_list.append(row_dic)

今回使うExcelは、Jリーグデータサイトから抽出した得点ランキングのデータ。

大会、順位、選手名、所属、得点数、シュート数、出場数、出場時間、1試合平均の得点数が項目として存在する。

ヘッダ処理

もし1列目なら、行を丸ごとheader_cellsとして別に格納する。

読み込んだExcelの行とヘッダの紐づけ

rowをv、header_cellsをkとしてforに渡す。
v,k = 1ならheader_cell = 大会、rowの1カラム目 = “J1”
大会:”J1″として辞書リストの要素を作っていく。これをすべてのカラムに繰り返し処理していく。
header_cellsの要素を順番にrowごとの列と対応させて、辞書リストを作成していく。

辞書リストの完成

上記の紐づけ処理をExcel全行(すべてのrow)に行い、辞書リストが完成する。

以上

タイトルとURLをコピーしました