テービーテックのデータサイエンス

未経験リケジョがゼロからデータサイエンティストを目指す姿を記す奮闘記です。2019/12/05文系出身者が共同で更新を開始

TAG index

▲本日の関数==describe()==

f:id:TBT_matsu:20200402152259p:plain

本日の関数: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

f:id:TBT_matsu:20200513112927p:plain

コード
df.describe()

f:id:TBT_matsu:20200513113034p:plain
データフレーム型で結果が戻ってきます。 項目は、
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

f:id:TBT_matsu:20200513113442p:plain

そのままだと数値の列しか結果が出ません。

new_df.describe()

f:id:TBT_matsu:20200513113034p:plain

数値以外の要素の結果を取得したいときは引数のincludeかexcludeを指定します。

# 真偽値の列の結果を表示
new_df.describe(include='bool')

f:id:TBT_matsu:20200513113912p:plain

# 数値以外の列の結果を表示
new_df.describe(exclude='number')

f:id:TBT_matsu:20200513114036p:plain

これらの場合は当然、
count: 要素の個数
unique: ユニークな値の要素の個数
top: 最頻値
freq: 最頻値の出現回数
のみの表示となります。

全部表示させることももちろん可能です。

# 全ての列の結果を表示
new_df.describe(include='all')

f:id:TBT_matsu:20200513114402p:plain

もっと詳しく!

ドキュメントへ!!