【初心者向け】Pythonでデータ分析をする方法を解説

Pythonとは

1991年に登場した汎用プログラミング言語「Python」。Pythonは、デスクトップアプリ、Webアプリに加え、システム用スクリプト、各種自動処理、データ処理、統計解析の分野でよく使われている言語です。ここ数年で人気言語となり、2017年秋頃にはさまざまなランキングサイトで、最も成長が見られる言語として高評価。日本でもWebコンテンツやWebアプリ、AI分野に関わるエンジニアから高い支持を得ています。

Pythonの特徴は、文法がシンプルで読みやすいことです。また、予約語が少ない、同じ処理を行う命令は同じ名前で実行できる、「字下げ(インデント)」の強制があるのもメリットで、誰が見ても構造を理解しやすく、誰が書いても似たようなソースになります。

https://www.brain-gate.net/content/column/language-future-python/
https://www.brain-gate.net/content/column/sp-application-python/

Pythonで行うデータ分析の流れ

Pythonで行うデータ分析の流れとしては、以下のステップを行います。
・データを収集する
・データの前処理を行う
・データを可視化する
・機械学習やディープラーニングに合わせてモデル化する
このステップ間を行き来しながら、分析する必要があります。なぜ、ステップ間を行き来する必要があるのかというと、データの可視化をした結果、データの前処理が再び必要になったり、モデリングしたあとに、さらにデータの前処理が必要になることがあるからです。

なお、Pythonでデータ分析を行う際には、以下ができるようになっていることが前提です。
・コードを書く環境を用意する
・コードの書き方を覚える
・分析の設計をする

ステップ①データを収集する

答えを出したい課題を設定したら、その課題をクリアするためにデータを収集します。データ収集の方法には、
・オープンデータ(公的機関などが二次分析のために公開しているデータセット)の統計を使う
・社内のデータベースのデータを抽出する
・Webスクレイピング(Web上のHTMLのデータを自動収集できる技術)、Web API(プログラムからアプリケーションを操作するためのデータの窓口のようなもの)を利用する
などがあります。

ステップ②データの前処理を行う

収集したデータはそのまま利用できません。データ分析の用途に合わせて、以下のような加工が必要です。

●欠損値の加工
データのなかに欠損値があると、データ分析の結果がうまく出ないことがあります。結果をきちんと出すためにも、
・欠損値をごっそり削除する
・平均値、中央値、最頻値を代入する
・重回帰分析を使って、代入する
などを行いましょう。

●カテゴリカルデータ(文字列)を連続データに変換する
統計解析ができるように、カテゴリカルデータを連続データに変換します。

ステップ③データを可視化する

Pythonでデータを表やグラフにして可視化を行います。
可視化には、
・Matplotlib: Pythonのグラフ描画のためのライブラリ
・Pandas:Pythonで、データ解析を支援する機能を提供するライブラリ
・Seaborn: Pythonでグラフを作るためのライブラリ
などのモジュールが使えるようになるとよいでしょう。

ステップ④機械学習やディープラーニングに合わせてモデル化する

機械学習やディープラーニングが使える状態になったら、モデル化(物事の仕組みを単純化すること)を行いましょう。

機械学習を使わない方法

機械学習を使わずに、カテゴライズや数値予測を行う方法をご紹介します。ただし、データ数が多い場合には、機械学習などを用いた方がよいということを覚えておいてください。

if文で条件を書いていく

プログラミングの条件分岐の要領で、if文の条件を書いていく方法です。この方法は「ルールベース」と呼ばれています。

●例
駅の利用者数を予測するとしましょう。変数は「天気」と「曜日」の2つにします。明日は「月曜日」で「雨」なので、300人の利用者数が見込まれる、明後日は「火曜日」で「晴れ」なので、700人の利用者数が見込まれるといった、見込み予測をすることができます。パラメータの数は少ないほうが今までのデータをルール化するのが容易です。パラメータの数を増やすと、ルールで記述するのが難しくなり、プログラミングできない量になることがあります。

統計的な数値を求め予測する

統計的な数値を求めておいて、それらの数値に沿うように予測する方法です。この方法は「統計的な手法での数値予測」といいます。機械学習のアルゴリズムには統計的なアプローチを拡張して作られているものがあります。そのため、この方法は親和性が高いのがポイントです。

●例
小学校5年生の女子児童の国語のテストの順位を予測するとしましょう。A小学校の5年生の女子児童の国語のテストの点数から平均と分散を求めます。B小学校の同じ学年で同じ性別の児童の点数の結果から、B小学校の児童がほかの学校とくらべたときの予想順位を求めることができます。全国の数値を検証すると、全国での点数のばらつきや順位を予測できたり、無作為に集めたサンプル(標本)データを使って、全国の児童の中の順位を予測することもできます。

Pythonでデータ分析をする場合のメリット

Pythonでデータ分析するメリットは、次のような点が挙げられます。

・データの収集から前処理、可視化、モデル化まで、一貫して対応していること
・データ分析がしやすく、最新手法を実装できるライブラリがそろっていること
・データの加工、集計がしやすいこと
・csv1000行以上といった大規模なデータの、データの前処理がしやすいこと
・文法がシンプルなので、初心者にも比較的書きやすいこと

Pythonでデータ分析をする場合のデメリット

Pythonでデータ分析するメリットがある一方、デメリットもあります。

・Pythonの基本を覚えなければならない
・レポーティングのためのグラフ作成に向いていない
・C言語などにくらべて処理速度が遅い
・インデントによる制約があり、ルールからずれるとエラーになる

Pythonでデータ分析を効率化

Pythonを使えば、簡単にデータを取ってきて可視化・分析できます。Python初心者であっても文法がシンプルで比較的書きやすいので、ぜひチャレンジしてみてください。ただし、Pythonでデータ分析を始めるには、Pythonを動かすための「環境構築」、「Python言語の習得」、「分析作業を理解すること」が必要です。

【初心者向け】Pythonでデータ分析をする方法を解説のページです。ITエンジニア・移動体通信エンジニア(技術者)の派遣求人ならブレーンゲート。株式会社ブレーンネットはシステムエンジニアやネットワークエンジニア、プログラマーの派遣・転職をサポートいたします。