54
59

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.

Python × PowerBI データ分析事始め【データ準備編】

Posted at

はじめに

と、いうことで、PowerBIでPythonが利用できるようになりました。
※機能はプレビュー段階

Python使いたかったデータサイエンティストの方々も多かったでしょう。
ニッチなデータ加工をPowerQueryではなくPython/Pandasを使えるのはとても喜ばしい。

ところで、PythonもPowerBIも興味あったけど、あまり取組めていなかった人も多いのではないかと。
せっかく両方使えるようになったので、両者の特徴解説していきながら、
データの取得~加工~可視化をやっていきたいと思います!

Python & PowerBI 初心者さんのためのデータ分析事始めスタート!

PCにPowerBIDesktopとPythonをインストールしよう

まずは環境構築、自身のPCにPowerBIDesktopとPythonをインストールしましょう。
それぞれ以下の記事を参考に進めてください。

PowerBIDesktopはコチラ

Pythonはコチラ

PowerBIでPythonが使える準備をしよう

2018/8時点で、Pythonはプレビュー機能のため、オプションで有効化することが必要です。

有効化したら、Pythonを実行するホームディレクトリを選択します。
下記手順でAnaconda経由で環境構築した場合は、だいたい以下のようなディレクトリ名で指定できるはずです。

C:\Anaconda3\envs\"つくった環境名"

だめな場合は、pythonで以下を実行してパスを確認しましょう。

.py
import sys
sys.path

表示されるエラーが消えたら、準備できています。

データを取得しよう

PowerBIでの分析を始めるには、データを取得することがスタートライン。
データの取得に関してはPowerBIに備わっているクエリ(PowerQuery)が超優秀で、正直Pythonの出番はあまりありません。

でも、Pythonによるデータ取得→反映ももちろんできます。

両方試してみましょう。

ローカル環境からCSVファイルを取得

PowerBI

PowerBIのデータ取得は超簡単&高機能です。

仮に取り込みたいデータがCSV形式でデスクトップ上にある場合、
画面上のリボンから「データを取得」→「テキスト/CSV」→お目当てのCSVを選択するだけ。

データ取り込み後、データの加工をしていくのが本来のステップ。

PowerBIは、レポートとしてビジュアルを作ったり、データモデルを集計したりする画面「レポート画面」と、集計対象のデータを加工する画面「クエリエディター」の大きく2種で構成されています。

先ほどのデータも、きちんとクエリエディター上で確認・加工できるようにすでに整備されています。
クエリエディターの「詳細エディター」というところをクリックしてみましょう。

これが、PowerQuery原文です。
1つ1つの加工ステップが、すべて1行のコードとして対応していることが分かります。
GUI上での操作が全部コード化されて適用されているイメージですね。

さて、加工はまたいずれにして、「閉じて適用」をクリックしてレポート画面に戻りましょう。

レポート画面右側をみてみると、「フィールド」に先ほど取り込んだデータが格納されていることがわかります。

このフィールドを使って、ビジュアルを作っていくことになります。

Python

さて、Pythonでローカル環境にあるデータを取り込む手順にうつります。

Pythonのスクリプトを書くことになりますが、おススメは次のステップ。

  1. JupyterNotebookやVSCodeなど、自分の環境下でコード作成・テスト
  2. PowerBI Pythonスクリプトにコピペ
  3. 実行

PowerBI上のエディタでは絶対に書かないでください。
※初心者殺し的な意味で。

さあやってみましょう。

まずは自分の環境下で、ローカル環境に置いたCSVファイルをデータフレームとして取り込むスクリプトを作ります。

といっても、以下2行です。

.py
# pandasというデータフレームを扱うためのライブラリをインポートします
import pandas as pd
data = pd.read_csv("C:/Users/hogehoge/Desktop/winequality-white.csv", sep=";")
# 絶対パスで指定するのを忘れずに。

無事に読み込みができていたらOK。

PowerBIに戻って、
「データを取得」→「Pythonスクリプト」→コピペ・OK
で、ナビゲーターが起動し、
データフレームを格納した変数名を選択することができるようになります。
あとはチェックして読み取りだけ。

なんかめっちゃ遠回り感ありますが、同じことができました!

WEB上の情報(HTML)をスクレイピング

さてさて、PowerBIといえば高度なスクレイピング機能。
UCI Machine Learning RepositoryのHTML情報から、データテーブルを作成してみましょう。
対象はデータセット一覧のコチラのURL

PowerBI

tableタグなどを自動で読み取ってくれたりするんですが、
WEBページ見ながら欲しい情報入力すると、
自動で「お前欲しいのコレやろ(どやぁ)」してくれる機能を紹介

「データを取得」→「WEB」→URLをコピペ→「列を使用してテーブルを追加」

すると、WEBの画面を見ながら自分が欲しい情報をいくつか入力すると、自動でHTML・CSS情報を抽出してくれるぶっとび機能。
詳細はこちらの記事を参照「例を使用してテーブルを抽出するとは」

簡単にデータセット情報が抽出できちゃいました。

Python

Pythonの手順は先ほど同様、自分のエディタで試行してから実装しましょう。

まずスクレイピングにあたって、lxmlhtml5libBeautifulSoup4のライブラリが必要なので、pipでインストールしておきます。
※Pythonで以下を実行すればOK

.py
!pip install pandas lxml html5lib BeautifulSoup4

コピペコードは以下のとおりです。

.py
import pandas as pd
url = 'https://archive.ics.uci.edu/ml/datasets.html'
df_list= pd.io.html.read_html(url)
ucidata2 = df_list[5]
ucidata2 = ucidata2[[0]]
ucidata2.columns=["Name"]
ucidata2 = ucidata2.dropna().drop(0)

これで、ucidata2という、先ほどスクレイピングしたデータセットとまったく同じものができあがりました。

次回

通常は加工のステップをやるべきですが、退屈です。
なので、お先にPowerBIビジュアルと、Pythonビジュアルで遊んでみましょう!

おわりに

利用データは、主にUCI Machine Learning Repositoryから拝借させていただいています。

54
59
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
54
59

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?