本日の関数:describe()
こんにちは。
テービーテックの村松です。
本日ご紹介する関数は「describe()」。
※※これまでご紹介した関数はこちら※※
どんな関数?
データフレームなどを扱うときに要約統計量の確認に使います。
ざっくり列ごとのデータ数や平均・分散などをぱっと表示できます。
引数は?
describe(percentiles=None, include=None, exclude=None)
よく指定する引数は、
- include:結果を表示する要素の型を指定できます。
- exclude:結果を表示しない要素の型を指定できます。
使ってみよう
input
import pandas as pd import numpy as np df = pd.DataFrame(np.arange(16).reshape(4,4), columns=['a','b','c','d'],) df
コード
df.describe()
データフレーム型で結果が戻ってきます。 項目は、
count: 要素の個数
unique: ユニークな値の要素の個数
top: 最頻値
freq: 最頻値の出現回数
mean: 平均
std: 標準偏差
min: 最小値
max: 最大値
50%: 中央値
25%, 75%: 1/4分位数、3/4分位数
です。
データフレームなので欲しい項目だけ取り出すのも簡単ですね。
# 各列の平均を抽出 print(df.describe().loc['mean']) ##結果 a 6.0 b 7.0 c 8.0 d 9.0 Name: mean, dtype: float64
# 指定列の平均を抽出 print(df.describe().at['mean', 'c']) ##結果 8.0
因みに、数値以外の要素の場合は、
# 数値以外の要素を含んだデータフレームを用意 df2 = pd.DataFrame({'c': [True, False, False, True], 'd': ['2', '3', '2', '6'], 'e': ['い', 'ろ', 'は', 'い']}) new_df = pd.concat([df, df2], axis=1) new_df
そのままだと数値の列しか結果が出ません。
new_df.describe()
数値以外の要素の結果を取得したいときは引数のincludeかexcludeを指定します。
# 真偽値の列の結果を表示 new_df.describe(include='bool')
# 数値以外の列の結果を表示 new_df.describe(exclude='number')
これらの場合は当然、
count: 要素の個数
unique: ユニークな値の要素の個数
top: 最頻値
freq: 最頻値の出現回数
のみの表示となります。
全部表示させることももちろん可能です。
# 全ての列の結果を表示 new_df.describe(include='all')