【Python】pandas-profilingの使い方(たった5分でデータ分析を効率化する方法)(初心者向け)

プログラミング

Pythonで機械学習を行いたいけど、基礎集計に時間がかかる。データ分析を効率的に行う方法はないかな。

こんな悩みにお答えします。

Pythonのライブラリを用いることで、データを用意するだけで簡易な集計を自動で実施することができます。

なぜなら、Pythonには集計用のライブラリが事前に用意されているためです。

今回は、pandas-profilingの使い方をご紹介します。

この記事を読み終えると、データの基礎集計を効率的に実施できるようになります。

 

本記事の内容

・pandas-profilingの概要と使い方
・pandas-profilingの具体例

 

Pythonを学べるおすすめのプログラミングスクール
1. Aidemy
・・・AIエンジニアとしてのスキルを身に付けたい。その延長で就職、転職できたら嬉しい方におすすめ。
2.侍エンジニア塾
・・・基礎力と即戦力を身に付けられる、満足度No.1スクール
3.
TechAcademy
・・・副業に向けてスキルアップしたい。フリーランスなどを目指している方向け。
4
. AIジョブカレッジ
・・・コスパ良く、質の高い講座を受けたい方におすすめ。

本記事の信頼性

ひよこ
ひよこ

私は、大学時代にプログラミングを学び、PHPなどのWeb系言語からAIに用いられるPythonまで幅広く経験してきました。

現在はデータサイエンティストとして大企業で活動しています。

また今ではほぼ不労所得として月10万円以上の収益を継続的に達成しています。

 

1. 結論:データ分析に最適!基礎集計を簡単に!

 

pandas-profilingはデータ分析に最適!基礎集計を簡単に!

機械学習やデータ分析を行う際には、データの基礎集計を行う必要があります。

しかし、基礎集計も簡単ではありません。

  • データ数
  • 欠損値
  • 特徴量分布
  • カラム間の相関

などなど、複数の処理が必要になります。

 

そこで、pandas-profilingです。

pandas-profilingを用いることで、上のようなGIFをたった数行、数分で実装することができます。

 

2. 環境

以降、実際にコーディングしていく上で、実行環境を記載いたします。

  • Windows10
  • Python:3.6.4
  • pandas_profiling:3.0.0

 

3. 概要

pandas-profilingの概要を簡単にご説明します。

pandas-profilingは、Pandasデータフレームのプロファイリングレポートを作成するライブラリです。

 

a. インストール方法

pandas-profilingはpipにてインストールすることができます。

$$pip install pandas-profiling

python環境の構築には以下の記事をご覧ください。

>>【Python】Windows10へのインストール方法を解説(スクリーンショットあり)
>>【Python】【初心者必見】仮想環境の構築~venvの設定方法~

 

b. レポート項目

レポートに含まれる項目は以下のとおりです。

■レポート項目

  • Overview
  • Variables
  • Interactions
  • Correlations
  • Missing values
  • Sample
  • Duplicate rows

    それぞれ見ていきましょう。

    b-1. Overview

    項目概要
    Overviewデータ数や特徴量の数などデータ概要
    Warningsデータ分析に関わる情報の提示(相関性の高い項目の明示など)
    Reproductionレポート作成に要した時間など

    b-2. Variables

    データ数や欠損値などを知ることができる上に、右下のToggle detailsを押下すると以下4種の情報も閲覧可能です。

    項目概要
    Statistics分位数と記述統計
    Histogramデータのヒストグラム
    Common values共通値の頻度
    Extreme values最大・最小値
    ひよこ
    ひよこ

    カテゴリカル変数の場合、表示形式が異なります。実際にデータを入力して確認してみましょう。

    b-3. Interactions

    Interactionsでは、特徴量同士の関係性を視覚的に確認することができます。上部のタブで特徴量を選択することが可能です。

    b-4. Correlations

    Correlationsは特徴量間の相関関係を表します。算出方法によって以下5指標を切り替えることが可能です。

    項目対象概要
    Pearson’s r数値変数ピアソンの相関係数
    Spearman’s ρ数値変数スピアマンの相関係数
    Kendall’s τ数値変数ケンドールの相関係数
    Cramer’s V(φc)カテゴリカル変数クラメールの連関係数
    Phik (φk)数値、カテゴリカル変数Phikの相関係数
    ひよこ
    ひよこ

    上図では、4指標分しか記載されておりませんが、例に挙げたデータにカテゴリカル変数が含まれていないため、クラメールの連関係数が出力されていません。

    b-5. Missing values

    Missing valuesは欠損値を表します。上図は欠損値がないケースですが、Countタブでは欠損値が含まれている場合棒グラフが短くなります。

    その他以下項目が表示されます(上図には欠損値が含まれていないため、CountMatrixのみ確認することができます)。

    項目概要
    Matrixデータ密度(欠損値を含む場合空白が多くなる)
    Heatmap欠損値を含む特徴量間の相関
    Dendrogram欠損値を含む特徴量との相関を表す樹形図

    b-6. Sample

    Sampleではデータの最初(First rows)と最後(Last rows)の10件を表示します。

    Duplicate rowsは、重複しているデータを表します。全く同じ特徴量を持ったレコードがある場合に表示されます。

    LINE証券口座開設

    4. pandas-profiling の具体例

    ここから実際にpandas-profilingを使って、レポートの出力を行います。

    a. データセット

    扱うデータとしては、Scikit-learnに用意されているデータセットIrisを採用しました。主に機械学習のデータとして用いられています。

    データ数150
    特徴量4sepal(がく片)とpetal(花びら)の長さと幅

    b. 実行の流れ

    実行の流れは以下のとおりです。

    1. データの読み込み
    2. レポートの作成
    3. レポートの保存

      1. データの読み込みでは、分析したいデータをPandasに変換します。

      そして、2. レポートの作成でpandas-profilingにてレポートを生成し、3. レポートの保存でhtml形式に保存して完了です。

       

      それぞれたった1,2行程度で実装できるため、簡単にデータのプロファイリングレポートを作成することができます。

       

      c. サンプルコード

      import pandas as pd
      import pandas_profiling as pdp
      from sklearn.datasets import load_iris
      
      #1. データの読み込み
      iris_dataset = load_iris()
      iris_dataframe = pd.DataFrame(data=iris_dataset.data, columns=iris_dataset.feature_names)
      
      #2. レポートの作成
      profile = pdp.ProfileReport(iris_dataframe)
      
      #3. レポートの保存
      profile.to_file("./data/iris.html") #ファイル名は適宜変更ください

      d. 実行例

      出力されたファイルがこちらです。

      htmlとして保存され、簡単に結果を確認することができます。

       

      5. まとめ

      今回は、pandas-profilingの使い方をご紹介しました。

      機械学習やデータ分析においてデータの基礎集計は必須です。しかし、毎回手動で実行していては時間がかかってしまいます。

      pandas-profilingを用いれば、たった数行でビジュアル的にも見やすいプロファイリングレポートを作成することができます。

      これは、あなたのデータ操作を助けてくれること間違いなしです。時間を効率化するための最適解になり得ると思いますのでぜひ試してみてください。

       

       

       

      本ブログでは、株式やプログラミングに関する記事を投稿しています。

      プログラミング(Python)を学びたい方におすすめの書籍やプログラミングスクール、おすすめの学習方法などをご紹介しておりますのでぜひご覧ください。

      独学で挫折してしまう方は、プログラミングスクールという方法がおすすめです。

      私の一押しは『TechAcademy』です。

      質問することですぐに分からないところをクリアにできますし、進捗をサポートしてくれるため確実に成長することができます。

      無料相談を実施しているため、まずは話を聞いてあなたのスタイルに合っているかどうか確認してみるのが良いと思います。

      スキルアップを目指したい方におすすめのオンライン学習サービス

      Profile
      この記事を書いた人

      現役データサイエンティスト
      【投資×プログラミング】に関するブログを運営しています。

      ■発信内容
      ・・・プログラミング(Python)、銘柄分析、株価予測など
      ■投資対象
      ・・・インデックス投資、米国ETF、米国個別株

      普段は1万人規模の大企業で世にコンテンツを生み出してます。

      ひよこをフォローする
      プログラミング開発
      ひよこをフォローする
      副業プログラミング応援団

      コメント

      タイトルとURLをコピーしました