3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Power BI DesktopのクエリーでPythonを使ってデータを加工する

Last updated at Posted at 2019-08-22

#はじめに

  • Power BIのPower Query Editor(M言語)でデータの前処理を行うことができますが、 Pythonスクリプトの方が、やりたいことを実装しやすい場合もあります。
  • ここでは、Pythonスクリプトの使用例として、変換テーブルを参照して文字列を置換する処理を作成してみます。

#サンプルデータ

Power Query Editorのデータ入力より、AttendanceテーブルとName_Conversionテーブルを作成します。

Attendance

参加日 名前
2018.7.2 渡邊
2018.7.2 斎藤
2018.8.4 斉藤
2018.8.4 渡辺
2018.8.4 高橋

※注)渡邊と渡辺、斎藤と斉藤は、同一人物で異なる漢字表記が混在しています:confused:

Name_Conversion

変換前 変換後
渡辺 渡邊
斉藤 斎藤

image.png

#Python処理の追加

Name_Conversionテーブルに従い、Attendanceテーブルの名前を置換する処理を追加します。

  1. Power Query Editorより、クエリのAttendanceテーブルを選択し、クエリの設定でPythonスクリプトを実行するを追加します。

  2. スクリプトの記述はそのままでOKを押します。(データ結合のプライバシー設定についてのメッセージが表示されることがあります。)

  3. Power Query文を修正し、前ステップの結果とName_Conversionテーブルをスクリプトで使用できるように修正します。

        Power Query 
修正前 = Python.Execute("# 'dataset' はこのスクリプトの入力データを保持しています#(lf)",[dataset=変更された型])
修正後 = Python.Execute("# 'dataset' はこのスクリプトの入力データを保持しています#(lf)",[dataset=変更された型,dataset2=Name_Conversion])
  1. 名前を置換するPythonスクリプトを追加します。
# 'dataset' はこのスクリプトの入力データを保持しています
for i in range(len(dataset2)):
        dataset['名前']=dataset['名前'].replace(dataset2['変換前'][i],dataset2['変換後'][i])
  1. スクリプトの出力テーブルで、datasetとdataset2から、datasetのValueにあるTableを選択します。

PBI_Python.gif

#Pythonによるデータ前処理後のデータ
Attendance

参加日 名前
2018.7.2 渡邊
2018.7.2 斎藤
2018.8.4 斎藤
2018.8.4 渡邊
2018.8.4 高橋

#参考

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?