Python × Excel

PythonでExcelのVLOOKUP関数の操作を行う方法

2020-10-15

python-excel-vlookup

本記事では、PythonでExcel のVLOOKUP関数の操作を行う方法をご紹介します。

Pythonの実行環境

今回は、以下の実行環境でプログラムを実行しています。

・Python 3.7.6
・Jupyterlab 1.2.6
・Pandas:1.1.2

テストデータは、次のような予算管理表を使います。

ファイル名は「テストデータ.xlsx」で、シート名は「予算管理表」と「担当者マスタ」です。

■予算管理表

レコード数:11、列数:10

テストデータ

■担当者マスタ

担当者マスタ

 

本記事で、今回利用するライブラリはPandasです。

import pandas as pd

※本記事では、Pythonのコードの下のコメントアウトは、出力結果を示しています。

 

PythonでExcelのVLOOKUP関数の操作を行う方法

今回の例だと、Excelだと、'担当者コード'の列で次のようにvlookup関数を使えるますよね。

vlookup

 

まずは、2つのシートを読み込みます。予算管理表をdf、担当者マスタをdf_userとします。

df = pd.read_excel('テストデータ.xlsx', sheet_name = '予算管理表')
df_user = pd.read_excel('テストデータ.xlsx', sheet_name = '担当者マスタ')

 

次に、読み込んだ2つの表を次のように結合します。

df = df.merge(df_user, on='担当者コード', how='left')

 

on='担当者コード'キーをとなる列を指定します。列名が異なる場合は、left_onright_onに分けて指定します。

how='left'は、結合の仕方を指定していますが、vlookupの場合は、mergeの左の表をベースにするからleftとすると覚えていれば問題ないです。

この結果は、次の通りになります。一番右の列に担当者名が追加されました。

vlookup結果

確認のため、行数と列数を確認すると、11行、11列の表になり、列が1つ追加になったのがわかります。

df.shape
#(11, 11)

 

PythonでExcelのVLOOKUP関数の操作を行う際の注意点

ここで、PythonでVLOOKUP的な操作を行うときの留意点を1つ紹介します。

「マスタ側の表でキーとなる列は一意にすべき」ということです。

 

例として、キーとなる列が一意でないマスタで処理を行ってみます。

担当者コードの「A00001」が重複しています。

担当者マスタ2

 

この表を「テストデータ_2.xlsx」とします。

上の処理と同様に、Excelを読み込んで、VLOOKUP的な処理を行います。

df2 = pd.read_excel('テストデータ_2.xlsx', sheet_name = '予算管理表')
df_user2 = pd.read_excel('テストデータ_2.xlsx', sheet_name = '担当者マスタ')
df2 = df2.merge(df_user2, on='担当者コード', how='left')

結果は、次の通りとなります。

vlookup結果2

 

df.shape
#(15, 11)

ご覧の通り、マスタで重複していた分だけレコードが増えています。

 

マスタのキー列に重複する値があるのを知らずに、マージすると誤って集計してしまうこともあります。

 

ぜひ、Pythonのmerge関数を使う時は、マスタとなる表のキーが一意であることを確認してください。

 

以上、PythonでExcelのVLOOKUP関数の操作を行う方法を留意点とともに説明してきました。

最後まで読んでいただき、ありがとうございました。

よく読まれている記事

insta-auto-post 1

  インスタって自動で投稿できないのかな。いつもスマホで投稿するの大変だし・・ Pythonを使えば、インスタで自動で投稿できるよ!!特別に紹介するね ...

python-consult_1 2

  AI・機械学習、データサイエンティスト、、やっぱりこれからの時代Pythonは勉強すべきだよね!   その通り。Pythonは今後も伸び ...

【保存版】PythonでできるExcel操作のまとめ一覧 3

  Excelで作業するのって大変だな〜 なにか楽な方法ないかな〜   Excelの集計や単純作業は、Pythonで楽にできるよ!!この一覧 ...

python-works 4

ここでは、サイト管理者のいなサラがこれまでPythonで作ったものをご紹介します。 以下のリンクで、実際の作り方やソースコードを公開しているので、ぜひ参考にして ...

-Python × Excel

© 2021 inasala note