( New ) 新連載スタート!2人の会話形式でPythonを学ぶ「週末Pythonゆる講座」はこちら ▶▶

【Python】describe|全ての統計情報を一瞬で把握する方法

事前準備

Pandas」というデータ解析を実施できるライブラリをインポートします 

import pandas as pd

サンプル:学校データ

学校のイメージ画像
student_data.head()
学校のテストデータのイメージ

describeとは?

describe()を使うことで、DataFrameの統計情報を抽出することができます

データを読み込んだ後に、概要を把握するのに非常に便利なメソッドです

student_data.describe()
サンプルデータのdescribe()メソッドの結果

統計情報とは?

統計情報とは「平均や散らばり」などのデータを要約した情報を指します

この統計情報を把握することで、データ全体の構造を把握することができます

  • 平均
  • 標準偏差
  • 最大値
  • 最小値
  • 四分位数

これらは基本的な統計情報ですが、統計が苦手な方にはアレルギーが出るかもしれません…

なるべく身近な用語で説明するために「学校データ」でご説明していきます

describeの使い方

describe()は()カッコの中を空欄でも、そのまま使えるメソッドです

指定する項目は非常に少ないですが、唯一注意すべき点は…

データが「数値データ」か「それ以外」かを把握すること

「それ以外」とは「文字列」や「日付」などのデータなどのこと

describe()では「数値データ」と「それ以外」で抽出される内容が変わります

1.2.3.4.5…のような「数値データ」は平均や標準偏差などを計算できます

一方で、それ以外の「文字列データ」などは平均、標準偏差を算出することができないため、ユニークな数や最頻値などの情報が抽出されます

include / excludeでデータ型を指定

英語の意味通り、「include」では抽出したいデータ型を指定し、「exclude」では抽出しないデータ型を指定します

※列名や列番号ではなく、「数値型」「文字列型」「日付型」などのデータ型を指定するので注意しましょう

もし指定がない場合は、「数値データ」のみ要約情報が抽出されます

当記事では「3パターン」に絞って指定方法をご紹介します

数値データ“のみ”何も指定しない ※デフォルト

数値データ“以外”exclude = ‘number’

“全て”のデータ型 = include = ‘all’

数値データ"のみ"
student_data.describe() #数値データのみ
サンプルデータのdescribe()メソッドの結果
数値データ"以外"
student_data.describe(exclude='number') #数値データ以外
サンプルデータのdescribe()メソッドの結果
"全て"のデータ型
student_data.describe(include='all') #全てのデータ型
サンプルデータのdescribe()メソッドの結果

集約項目

前述の通り【数値データ】と【それ以外】では項目が異なります

数値データ:個数・平均・標準偏差・最小値・最大値・中央値・四分位数

それ以外:個数・ユニークな個数・最頻値・最頻値の頻度

count:個数

サンプルデータのdescribe()メソッドの結果(count)

「count」はデータの個数を表します

「NULL」のデータは対象外となるため、生徒500名に対して6~7人はテストを受けていなことになりますね

mean:平均

サンプルデータのdescribe()メソッドの結果(mean)

データ分析の際にとても重要になる「平均」です

平均は英語が高く、数学が低いことが分かります(難易度を表しますね)

std:標準偏差

サンプルデータのdescribe()メソッドの結果(std)

詳しい説明は避けますが、「標準偏差」はデータの散らばりを表します

数学が16.0で一番高いということは、点数が高い人も低い人も多いことになります

min:最小値

サンプルデータのdescribe()メソッドの結果(min)

minは最小値で、テストの点数では最低点ということになります

max:最大値

サンプルデータのdescribe()メソッドの結果(max)

maxは最大値で、テストの点数では最高点ということになります

50%:中央値

サンプルデータのdescribe()メソッドの結果(50%)

50%は「中央値」を意味しています

25% 75%:四分位数

サンプルデータのdescribe()メソッドの結果(25%,50%,75%)

全体の1/4や3/4の数値を確認することができます

※区切るパーセントを設定する

デフォルトでは最小値から最大値までを4分割していますが、区切りを設定することができます

percentiles」パーセンタイルというパラメータを設定します

「0~1」の数値をリスト型で記述します

percentiles=[0.2,0.4,0.6,0.8]

percentiles=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]

student_data.describe(percentiles=[0.2,0.4,0.6,0.8])
サンプルデータのdescribe()メソッドの結果(percentiles)

unique:ユニークな個数

サンプルデータのdescribe()メソッドの結果(unique)

ユニークとは「重複が無い」という意味で、同じ項目は数えない仕組みです

クラスは5クラスあり、男性・女性の2つの性別があることが分かります

top:最頻値

サンプルデータのdescribe()メソッドの結果(top)

最も多い項目を出すのが「最頻値」です

注意点としては「米山」が「2組」で「男性」ということではなく、

クラスで多いのは「2組」で、それとは別に性別で多いのは「男性」ということです

freq:最頻値の頻度

サンプルデータのdescribe()メソッドの結果(freq)

freqはtopと組み合わせて、最も多い項目がどのくらいあるのかを示します

性別の「男性」は286人いることを示しています

まとめ

今回は統計情報を一瞬で抽出するdescribe()関数をご紹介してきました

数値型以外でもぜひ使ってみてください

お気に入り登録お願いします

コメントを残す

メールアドレスが公開されることはありません。