◆当サイトで人気のプログラミング教室のおすすめランキングはこちら!
プログラミングは独学では非効率で、時間を無駄にするリスクがあります。効率的なカリキュラムで学べるスクールを受講しましょう。

DMM WEBCAMP【マンツーマンサポート】1ヶ月短期集中でプログラミングを学ぶスクール
1ヶ月通い放題・メンター常駐の教室環境でプログラミングを学びたい方!
TechAcademyオンラインで開講しているプログラミングスクール
オンラインでどこでも学べる!/教室に行くのが忙しい人でも安心!
TECH::CAMP教養としてのITスキルを学べるスクール
Webデザイン/AI(人工知能)/IOS/Androidアプリ制作/VRを学びたい方!
DMM WEBCAMP PRO転職保証付き!エンジニアとして転職したい人におすすめ!
未経験からプロのエンジニアへ3ヶ月で転職する為のスクールです!

はじめに

Webページからデータ収集をし、特定の情報、要素を取り出したいと思うことはよくあるかと思います。
あるECサイトのある商品の在庫や価格を出店店舗ごとに把握したいとか、ある事象についてかいてある販売本を抽出するなどです。

そういう要素抽出はWebスクレイピングと呼ばれるものですが、そういったスクレイピングを行うときにもPythonが良く利用されます。
そしてその取り出した要素に対してアプローチを行い、グラフ化して統計を取り、分析を行うことが多くなっています。
また、今最も注目されているAI(人工知能)の分野でも、機械学習、ディープラーニングなどといったキーワードが有名ですが、それらの基本はデータ分析です。
つまりデータ分析が理解できていないとAI(人工知能)の分野を深く理解していくことはできません。
今回はそのPythonでのデータ分析にについてツールの紹介ややり方などをご紹介します。

目的を決める

データ分析するためには、もちろんデータが必要ですが、そもそも「なぜデータ分析を行う必要があるか」が最重要です。
それが決まらないとデータ収集もできません。
「なにかの情報を収集して統計を見たい」「ある特定の商品がどう売れているかをみたい」「WEBサイトの利用者傾向をみたい」などの、 確固たる「目的」を定めてまずは始めましょう。
大それた内容でなくともかまいません。

技術を習得するために、まずは自分の興味のある内容などにするのがお勧めです。
データと一概に言ってもあまり広い範囲で制定してしまうとあまりにも膨大で分析しずらい場合もあります。適切に範囲決めしましょう。

データ収集の方針を決める

分析のために必要なデータをまずは収集するわけですが、そのために必要な情報を整理します。
例えば、野球選手情報に関する目的だとしたら、

・名前
・年齢
・年俸
・チーム名
・背番号
・ポジション

などを収集する必要があります。
必要な情報がどのようなものかを整理すると、その後のデータ抽出、データ分析もやりやすくなります。
この段階で情報整理がうまくいっていないと後々で手戻りが発生しますので綿密にやって情報全体を網羅できる項目をすべて抜き出せるようにします。

データを取得する

データを準備します。
小規模なものですと、自前でも構いませんが、現在はさまざまな情報がパブリックとして公開されています。(全国の図書館や国関係などもあります)
そういった情報をネットなどから取得します。

データ分析前処理を行う

一番手間のかかる作業です。
たとえば、excelを駆使して、取得したデータを整理したりします。
データは公開されているものが増えてきたといいましたが、それが自身のデータ分析に則した形になっていることはまずありえません。
また、データ構造は統一規格でもなんでもないため、ツール等がその仕様を吸収してくれることもありません。(特定のデータだけに作ったツールがあればいいですが)
そのため、自身でデータを整理してその後の作業をやりやすくする作業が一番苦労する部分であり、ここの結果次第で分析精度が大きく変わってきます。
事前にしっかりと行った収集方針の項目に従って整理しましょう。

実行環境を整える

Pythonのデータ分析環境としてのツールを用意します。
データ分析自体がとても手間のかかる作業です。コマンドラインで自身の書いたプログラムを逐一実行したり、結果を別ツールでまとめたりとするだけでも大きな時間がかかります。
実行環境をより便利なものにしておくことでそういったデータ分析の本質部分ではない余計なことに時間を割かずに済みます。

例えば、Jupyter(旧iPython Notebook)などがおすすめです。

http://jupyter.org/

インタラクティブにコードを実行するための環境で、とても見やすいです。
データ分析ツールとしても視覚的に非常にわかりやすく適しています。
データ分析結果の共有や保管なども行えるので、自身での管理よりよっぽど情報を整理できます。
その他にも、Google Cloud Datalabやbeaker notebookなどのツールがありますので色々試してご自身に使いやすいツールを選定してください。

ライブラリを整える

データ分析を行っていくわけですが、すべての分析を自分でプログラミングするのはやはり時間がかかりすぎます。
しかもそういった分析を行うためには、数学的知識が必須になります。そこを1から組むのは現実的ではありません。
Pythonにはそういった部分を補うライブラリが様々に存在しており、自身のデータ分析に役立ちそうなものはあらかじめ選定してセットアップしておきます。

Numpy

http://www.numpy.org/

配列同士の演算や多次元配列(行列計算)等を行うライブラリです。
Python標準の配列やリストに比べて機能が拡張されています。

Pandas

http://pandas.pydata.org/

Pythonで扱うデータをリレーショナルデータベースのような形(データフレームといいます)で扱えるライブラリです。
Pythonにおけるデータ分析のデファクトスタンダードに事実上なっていますので、ぜひ導入をおすすめします。

Scipy

http://docs.scipy.org/doc/scipy/reference/

科学計算・技術計算をおこなうためのライブラリになります。
最適化、統計処理や関数近似などの各種の計算を多く扱っています。

データを蓄積するデータベースを用意する

分析したデータはすべてを出力するわけではありません。
データが多くなればなるほど、精度が上がるわけですが、実際の分析結果とデータは別物です。
しかし、データは蓄積していかなくてはならないので、テキストやCSVで保存するには限界があります。
そういった場合はやはりデータベースを使用しましょう。
データベースは現在よく利用されているものは複数ありますが、Pythonでは接続用ライブラリがきちんと用意されています。

MySQL-Connector-Python

https://pypi.python.org/pypi/mysql-connector-python/

PostgreSQL : Pycopg2

http://initd.org/psycopg/download/

BigQuery-Python

https://github.com/tylertreat/BigQuery-Python

SQLite3

http://docs.python.jp/2/library/sqlite3.html

おわりに

いかがでしたでしょうか。
データ分析に関する方法論は多岐にわたり全部をご紹介することはできませんが、記事中にも書いた通りすべてを網羅する必要はまったくありません。
自身が分析したいデータの特性を見極め、適切なライブラリを選択して効率よくデータ分析を行えるよう準備をしっかりすることが大切です。
まずはデータ分析と肩ひじを張らずに

DMM WEWBCAMP/DMM WEBCAMP PROについて

DMM WEBCAMPは1ヶ月でプログラミング・WEBデザインを学ぶ通い放題のプログラミングスクールです。DMM WEBCAMP PROは3ヶ月間で未経験から即戦力エンジニアを育成する転職保障付きのプログラミングスクールです。

2つのサービスを運営するインフラトップでは、「学びと仕事を通して人生を最高の物語にする」という理念で会社を経営しています。

キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?

1月枠も残りわずか当社人気の転職保証コース
プログラミング学習から転職成功まで導く、当社人気のDMM WEBCAMP PROコース。
12月受入枠は満員となっております。1月枠に向け、お早めの申込みをオススメします。
プログラミング未経験でもエンジニア転職を絶対成功させたい
スキルを身に着けて人生を自ら切り開きたい
上記にあてはまる方は、ぜひご検討ください!

▼未経験から1ヶ月でWEBデザイン・プログラミングを学びたい方はこちら!


▼ついに開講!オンラインでWEBデザイン・プログラミングを学びたい方はこちら!

おすすめの記事