ここでは、以下のようにpandasをインポートしているものとして進めていきます。
import pandas as pd
サンプルデータ
ここではseabornのirisデータセットを用います。
以下のようにしてデータを読み込んでください。
import seaborn as sns
df = sns.load_dataset('iris')
DataFrameの統計量をまとめて取得する
describeメソッドを使用することで、DataFrameの記述統計量を一括して取得することができます。
print(df.describe())
※ df : サンプルデータ
sepal_length sepal_width petal_length petal_width count 150.000000 150.000000 150.000000 150.000000 mean 5.843333 3.057333 3.758000 1.199333 std 0.828066 0.435866 1.765298 0.762238 min 4.300000 2.000000 1.000000 0.100000 25% 5.100000 2.800000 1.600000 0.300000 50% 5.800000 3.000000 4.350000 1.300000 75% 6.400000 3.300000 5.100000 1.800000 max 7.900000 4.400000 6.900000 2.500000
- count : 欠損値を除いたデータ数 → countメソッドで得られる結果と同じ
- mean : 平均値 → meanメソッドで得られる結果と同じ
- std : 標準偏差 → stdメソッドで得られる結果と同じ
- min : 最小値 → minメソッドで得られる結果と同じ
- 25% : 第1四分位数 → quantileメソッドで得られる結果と同じ
- 50% : 中央値 → medianメソッドで得られる結果と同じ
- 75% : 第3四分位数 → quantileメソッドで得られる結果と同じ
- max : 最大値 → maxメソッドで得られる結果と同じ
なお、ここで取得した戻り値はそれ自体がDataFrameとなっています。
個々の統計量をそれぞれ取得する
欠損値を除いた要素数の取得
countメソッドを用いて、各列ごとの欠損値を除いたデータ数を取得できます。
print(df.count())
※ df : サンプルデータ
sepal_length 150 sepal_width 150 petal_length 150 petal_width 150 species 150 dtype: int64
平均値の取得
meanメソッドを用いて、各列ごとの平均値を取得できます。
print(df.mean())
※ df : サンプルデータ
sepal_length 5.843333 sepal_width 3.057333 petal_length 3.758000 petal_width 1.199333 dtype: float64
中央値の取得
medianメソッドを用いて、各列ごとの中央値を取得できます。
print(df.median())
※ df : サンプルデータ
sepal_length 5.80 sepal_width 3.00 petal_length 4.35 petal_width 1.30 dtype: float64
最頻値の取得
modeメソッドを用いて、各列ごとの最頻値を取得できます。
print(df.mode())
※ df : サンプルデータ
sepal_length sepal_width petal_length petal_width species 0 5.0 3.0 1.4 0.2 setosa 1 NaN NaN 1.5 NaN versicolor 2 NaN NaN NaN NaN virginica
出現回数が同じ最頻値が複数ある場合はそのすべてが表示されます。例えば、上記の例では、speciesはsetosaとversicolorとvirginicaがいずれも50回ずつ出現するので、その3つとも結果として返されています。また、petal_lengthは最頻値の1.4と1.5が同数出現するため、その2つが返されます。
medianメソッドの結果は最頻値が1つだけの場合も複数ある場合も、いずれもDataFrameとして取得されます。
分散・標準偏差の取得
varメソッド、stdメソッドを用いて、各列ごとの分散・標準偏差を取得できます。なお、varメソッドはデフォルトでは不偏分散を計算するので、標本分散を求める場合は引数に ddof=0 を指定してください。
print(df.var())
※ df : サンプルデータ
sepal_length 0.685694 sepal_width 0.189979 petal_length 3.116278 petal_width 0.581006 dtype: float64
print(df.std())
※ df : サンプルデータ
sepal_length 0.828066 sepal_width 0.435866 petal_length 1.765298 petal_width 0.762238 dtype: float64
最小値・最大値の取得
minメソッド、maxメソッドを用いて、各列ごとの最小値・最大値を取得できます。
print(df.min())
※ df : サンプルデータ
sepal_length 4.3 sepal_width 2 petal_length 1 petal_width 0.1 species setosa dtype: object
print(df.max())
※ df : サンプルデータ
sepal_length 7.9 sepal_width 4.4 petal_length 6.9 petal_width 2.5 species virginica dtype: object
文字列データについては、文字コードの順番で最小値・最大値が決められます。
分位点(クォンタイル)の取得
quantileメソッドを用いて、各列ごとの指定された分位点を取得できます。
print(df.quantile([0, 0.25, 0.5, 0.75, 1]))
※ df : サンプルデータ
sepal_length sepal_width petal_length petal_width 0.00 4.3 2.0 1.00 0.1 0.25 5.1 2.8 1.60 0.3 0.50 5.8 3.0 4.35 1.3 0.75 6.4 3.3 5.10 1.8 1.00 7.9 4.4 6.90 2.5
なお引数について、q=0の場合は最小値、q=0.5の場合は中央値、q=1の場合は最大値となります。
コメント