はじめに
データ解析において、分布の中央値や散らばりの程度を表す指標として「四分位数」があります。四分位数は、データを4等分した値であり、データの分布を理解する上で重要な役割を果たします。Pythonにおいて、pandasライブラリを用いることで簡単に四分位数を計算することができます。本記事では、pandasを使って四分位数を計算する方法について解説します。
pandasの基本的な使い方
pandasは、データ解析において頻繁に使用されるライブラリの一つで、データを扱うための様々な機能を提供します。pandasを用いることで、Excelのように表形式でデータを扱うことができます。
以下は、pandasを用いたデータフレームの作成例です。
import pandas as pd # データフレームの作成 data = {'名前': ['山田', '田中', '鈴木', '佐藤'], '年齢': [25, 30, 35, 40], '性別': ['男', '女', '男', '女']} df = pd.DataFrame(data) print(df)
このコードを実行すると、以下のようなデータフレームが表示されます。
名前 年齢 性別 0 山田 25 男 1 田中 30 女 2 鈴木 35 男 3 佐藤 40 女
四分位数の概要とその重要性
四分位数とは、データを4等分した値のことです。データの分布を把握するために用いられ、以下のような役割を果たします。
- データの散らばりの程度を表す指標として用いられます。
-
- 箱ひげ図の作成に用いられます。
四分位数には、以下の3つがあります。
- 第1四分位数(Q1):データの25%点。上位25%に属する値の最小値。
- 第2四分位数(Q2):データの50%点。中央値に相当。
- 第3四分位数(Q3):データの75%点。上位25%に属する値の最大値。
四分位数を用いることで、データの中央値とともに分布の傾向を把握することができます。また、第1四分位数と第3四分位数の差を四分位範囲(IQR)と呼び、データの散らばりの程度を表す指標としても用いられます。
pandasデータフレームで四分位数を計算する方法
pandasを用いることで、データフレームの列ごとに四分位数を計算することができます。以下は、pandasを用いた四分位数の計算方法の例です。
import pandas as pd # データフレームの作成 data = {'A': [10, 20, 30, 40, 50], 'B': [60, 70, 80, 90, 100]} df = pd.DataFrame(data) # 四分位数の計算 q1 = df.quantile(q=0.25) q2 = df.quantile(q=0.5) q3 = df.quantile(q=0.75) print('第1四分位数:\n', q1) print('第2四分位数:\n', q2) print('第3四分位数:\n', q3)
このコードを実行すると、以下のように各列の四分位数が計算されます。
第1四分位数: A 20.0 B 70.0 Name: 0.25, dtype: float64 # 第2四分位数: A 30.0 B 80.0 Name: 0.5, dtype: float64 # 第3四分位数: A 40.0 B 90.0 Name: 0.75, dtype: float64
quantile関数には、q引数に四分位数を指定することができます。また、デフォルトでは、q=0.5と指定することで中央値を計算することができます。
四分位範囲(IQR)の計算方法
四分位範囲(IQR)は、第1四分位数と第3四分位数の差です。以下は、pandasを用いたIQRの計算方法の例です。
import pandas as pd # データフレームの作成 data = {'A': [10, 20, 30, 40, 50], 'B': [60, 70, 80, 90, 100]} df = pd.DataFrame(data) # IQRの計算 iqr = df.quantile(q=0.75) - df.quantile(q=0.25) print('IQR:\n', iqr)
このコードを実行すると、以下のようにIQRが計算されます。
IQR: A 20.0 B 20.0 dtype: float64
このように、pandasを用いることで簡単にIQRを計算することができます。
実践例:具体的なデータを使った四分位数の計算手順
実際のデータを用いて、pandasを用いた四分位数の計算手順を確認してみましょう。
以下は、ある都道府県の年齢別人口データの一部です。
年齢 | 男性 | 女性 |
---|---|---|
0~4歳 | 123456 | 112345 |
5~9歳 | 98765 | 87654 |
10~14歳 | 87654 | 76543 |
15~19歳 | 76543 | 65432 |
20~24歳 | 65432 | 54321 |
このデータをpandasのデータフレームとして読み込み、各年齢層における男女別人口の四分位数を計算してみましょう。
import pandas as pd # データの読み込み df = pd.read_csv('population_data.csv') # 四分位数の計算 q1 = df.quantile(q=0.25) q2 = df.quantile(q=0.5) q3 = df.quantile(q=0.75) print('第1四分位数:\n', q1) print('第2四分位数:\n', q2) print('第3四分位数:\n', q3)
このコードを実行すると、以下のように各年齢層・男女別の四分位数が計算されます。
この結果から、男女を問わず年齢層が上がるにつれて人口が増加していることがわかります。また、男女別の四分位数の差から、男女で人口の分布が異なっていることもわかります。
まとめ
pandasを用いることで、データフレームの列ごとに四分位数を簡単に計算することができます。四分位数は、データの中央値とともに分布の傾向を把握することができる指標であり、データ解析において重要な役割を果たします。また、四分位範囲(IQR)は、データの散らばりの程度を表す指標としても用いられます。データ解析を行う上で、pandasを用いた四分位数の計算は基本スキルの一つであるため、ぜひ覚えておきましょう。