Top > Python

Pythonでデータ分析をする工程と主力ライブラリ



早速ですが、私がPythonでデータ分析する際の基本的なプロセスとよく使うライブラリをご紹介します。

Pythonによるデータ分析の流れとライブラリ Pythonによるデータ分析の流れとライブラリ


Data

このフェーズはある意味、最も重要で最もリードタイムが掛かります。他部署や他社と連携することも多く、コミュニケーションコストが発生します。
どのようなコミュニケーションやタスクがあるかと言いますと、主に以下の5点です。

  • 分析目的の精査
  • 取扱注意事項の確認
  • データ取得
  • データ定義の確認
  • データフロー整備

  • 分析の目的を精査して、得るべきデータが決定されます。
    そのデータを得る前提として、取り扱う際の注意事項があったりします。最近ですとEU一般データ保護規則(GDPR)関連で特に個人情報が厳しくなってきています。
    で、必要に応じてNDA締結や暗号化などを行ってデータを取得します。アカウント発行やAPIのSecretKeyの発行に何日も待たされることもあったりします。
    さらに、いざデータを得ても定義がよく分からないこともしばしば。仕様書があっても良くわからない場合もザラです。
    諸々クリアしつつ、データの受領からデータ分析する際のデータフローを整備します。単発な分析ならさほど重要ではないですが、定期的な分析の場合は後々ボディブローになるのでよく考えて自分たちに都合の良いように調整が必要です。


    Data Cleaning

    得たデータをPythonに読み込ませて、綺麗にしていきます。numpy, pandas, pandas_profiling, pivottablejs等を使って、以下の処理を行って分析出来る状態に綺麗にしていきます。

  • データ構造/分布把握
  • 異常値/欠損値対応
  • 変数/項目作り込み
  • フィルタリング

  • ちなみにこのフェーズからはJupyterかGoogle Colaboratory上で行っています。 なので、DBからデータを取り込む際もPandas.ioやpandas_td・MySQLdbなどを使ってPython上でSQLを書いています。


    Data Analysis

    綺麗になったデータセットをいよいよ分析していきます。scipy, statsmodels, sklearn, pymc, gensim等のライブラリを使うのですが、 当然ながらそれぞれ向き不向きがありますので、以下のように分析手法に従って適切なライブラリを選択するところからです。

  • 分析手法の選択
  • 分析ライブラリの選択
  • 分析
  • 検証

  • 正直、分析系ライブラリを使うまでもなく四則演算で終えるケースも多々あるのですが・・・笑
    Rのライブラリが必要なときはpyperを使って、Python内でRを動かしています。


    Data Visualize

    さて、分析が上手く行っても数字や文字だけの説明では普通の人は理解出来ませんから、理解しやすいように可視化してレポーティングをする必要があります。ここ超重要です。
    matplotlib, seaborn, highcharts, pivottablejs辺りを使って、可視化します。美しくするだけでなく、項目が何を示しているのかなど定義情報を忘れず設定や記入をしましょう。

  • チャートの選択
  • チャートの設定
  • レポーティング


  • 以上のなかで、Findings & Insightsを共有し、ビジネス拡大に繋がるNext Actionsにつなげていくことがデータ分析をする人間のValueです。
    逆に言うと、Valueが出るように何を明らかにすべきで、そのためにはどのようなデータを得て、どのように分析すればよいかを考えれば良いということです。

    また、Raw Data取り込み〜Data Visualizeまでを一連のスクリプトで書いておけば、次回からはバッヂ処理として短時間で終わらせられるので、コストを最小限にPDCAサイクルを回すことが出来ます。
    そのためにレポーティング用のデータはPowerPointやExcel表現が一瞬で終わるように出力・参照できるようにしておくと良いです。ちなみに個人的にはJupyterをHTML化して渡すのが簡単で好きですが、たまに社内の営業担当に「は?パワポに決まってるだろ」って言われるのでご注意ください。笑




    Ads by Google