【Python】PandasでDataFrameの各種統計量を算出する方法を紹介!

こんにちは!

皆さんは、DataFrame内のカラムの各種統計量を一度に算出したいと思ったことはありませんか?

Python初心者
一度に色々な統計量を算出できたら便利だね!

DataFrameオブジェクトには、平均、分散、最大・最小値などの統計量を簡単に算出することができるメソッドが用意されています。

今回の記事では、以下の内容について紹介します。

  • 様々な統計量を個別に求める方法
  • 様々な統計量を一度に求める方法

様々な統計量を求める

DataFrameオブジェクトには統計量を算出するための様々なメソッドが用意されています。

今回は、要素の個数、平均、分散、標準偏差、最大・最小値、パーセンタイルをDataFrame内の各カラムごとに算出する方法を紹介します。

今回はirisデータセットを用いて説明します。

import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

print(iris)

実行結果

     sepal_length  sepal_width  petal_length  petal_width    species
0             5.1          3.5           1.4          0.2     setosa
1             4.9          3.0           1.4          0.2     setosa
2             4.7          3.2           1.3          0.2     setosa
3             4.6          3.1           1.5          0.2     setosa
4             5.0          3.6           1.4          0.2     setosa
..            ...          ...           ...          ...        ...
145           6.7          3.0           5.2          2.3  virginica
146           6.3          2.5           5.0          1.9  virginica
147           6.5          3.0           5.2          2.0  virginica
148           6.2          3.4           5.4          2.3  virginica
149           5.9          3.0           5.1          1.8  virginica

[150 rows x 5 columns]

要素の個数

「count()」を使うと、値のある要素の個数を数えることができます。

print(iris.count())

実行結果

sepal_length    150
sepal_width     150
petal_length    150
petal_width     150
species         150
dtype: int64

平均

「mean()」を使うと、カラムごとの平均値を算出することができます。

print(iris.mean())

実行結果

sepal_length    5.843333
sepal_width     3.057333
petal_length    3.758000
petal_width     1.199333
dtype: float64

分散

「var()」を使うと、カラムごとの分散を算出することができます。

print(iris.var())

実行結果

sepal_length    0.685694
sepal_width     0.189979
petal_length    3.116278
petal_width     0.581006
dtype: float64

標準偏差

「std()」を使うと、カラムごとの標準偏差を算出することができます。

print(iris.std())

実行結果

sepal_length    0.828066
sepal_width     0.435866
petal_length    1.765298
petal_width     0.762238
dtype: float64

最大・最小値

「max()」「min()」を使うと、カラムごとの最大、最小値を算出することができます。

print(iris.max())
print(iris.min())

実行結果

sepal_length          7.9
sepal_width           4.4
petal_length          6.9
petal_width           2.5
species         virginica
dtype: object
sepal_length       4.3
sepal_width          2
petal_length         1
petal_width        0.1
species         setosa
dtype: object

パーセンタイル

「quantile()」を使うと、カラムごとのパーセンタイル値を算出することができます。

パーセンタイルの値は、0~1の範囲でリストで指定します。

print(iris.quantile(q=[0.25, 0.5, 0.75]))

実行結果

      sepal_length  sepal_width  petal_length  petal_width
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

統計量をまとめて算出

「describe()」を使うと、一度に複数の統計量を算出することができます。

print(iris.describe())

実行結果

       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

まとめ

今回の記事では、以下の内容について紹介しました。

  • 様々な統計量を個別に求める方法
    →個々のメソッドを使用
  • 様々な統計量を一度に求める方法
    →「describe()」を使用
Python初心者
こんなに簡単にDataFrameでも統計量を算出することができるんだね!

DataFrame内のデータの特徴をつかむのに役立てましょう!