基本的な統計量の求め方①

本クエストでは、describe()で取得した統計量を個別に取得する方法を学びます。

まずは数値の列について、describe()で表示される項目を、個別に取得してみましょう。
ここでは、下記のSeriesのメソッドを確認します。写経では確認しませんが、DataFrameでも同名のメソッドが使えます。なお、ここで上げたメソッドはすべて欠損値が対象外になっています。

  • count():個数
  • mean():平均
  • sum():合計
  • std():標準偏差※
  • var():分散
  • min():最小値
  • quantile():パーセンタイル
  • median():中央値
  • max():最大値

※ std()は標本標準偏差になります。std(ddof=0)とすると母標準偏差になります。

演習

数値と文字列のデータからなるDataFrameを作成します。In [1]:

import pandas as pd

df = pd.DataFrame(
    [
        ["Alice", 17],
        ["Bob", 24],
        ["Carol", 29],
    ],
    columns=["Name", "Age"],
)
df

Out[1]:

NameAge
0Alice17
1Bob24
2Carol29

まずは、describe()で統計量を見ます。要素が数値である列Ageについて取得できます。In [2]:

df.describe()

Out[2]:

Age
count3.000000
mean23.333333
std6.027714
min17.000000
25%20.500000
50%24.000000
75%26.500000
max29.000000

describe()の項目countは、欠損値以外の個数です。同名のcount()で取得できます。 ここでは、Seires.count()を使いますが、DataFrame.count()も使えます。 以降も同様に、Seriesのメソッドを使いますが、DataFrameのメソッドも使えます。In [3]:

df.Age.count()

Out[3]:

3

describe()の項目meanは、欠損値以外の平均です。同名のmean()で取得できます。describe()meanと同じ値になっていることを確認してください(表示される桁数は違います)。In [4]:

df.Age.mean()

Out[4]:

23.333333333333332

平均は、合計を個数で割ったものです。欠損値以外の合計は、sum()で取得できます。そのため、下記の式はdf.Age.mean()と同じになります。In [5]:

df.Age.sum() / df.Age.count()

Out[5]:

23.333333333333332

describe()の項目stdは、欠損値以外の標準偏差です。同名のstd()で取得できます。In [6]:

df.Age.std()

Out[6]:

6.027713773341707

欠損値以外の分散は、var()で取得できます。標準偏差の自乗と同じ値になります。In [7]:

df.Age.var()

Out[7]:

36.33333333333333

describe()の項目minは、欠損値以外の最小値です。同名のmin()で取得できます。In [8]:

df.Age.min()

Out[8]:

17

describe()の項目25%は、欠損値以外の25パーセンタイル(第1四分位数)です。パーセンタイルquantile()で取得できます。25パーセンタイルを取得するには、引数に0.25を指定します。In [9]:

df.Age.quantile(0.25)

Out[9]:

20.5

describe()の項目50%は、欠損値以外の中央値(第2四分位数)です。中央値はmedian()で取得できます。quantile(0.5)と同じ値です。In [10]:

df.Age.median()

Out[10]:

24.0

describe()の項目75%は、欠損値以外の75パーセンタイル(第3四分位数)です。In [11]:

df.Age.quantile(0.75)

Out[11]:

26.5

describe()の項目maxは、欠損値以外の最大値です。同名のmax()で取得できます。In [12]:

df.Age.max()

Out[12]:

29

コメント

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