本クエストでは、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]:
Name | Age | |
---|---|---|
0 | Alice | 17 |
1 | Bob | 24 |
2 | Carol | 29 |
まずは、describe()
で統計量を見ます。要素が数値である列Age
について取得できます。In [2]:
df.describe()
Out[2]:
Age | |
---|---|
count | 3.000000 |
mean | 23.333333 |
std | 6.027714 |
min | 17.000000 |
25% | 20.500000 |
50% | 24.000000 |
75% | 26.500000 |
max | 29.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
コメント