Pandasのdescribeメソッドは、統計的な要約情報を簡単に取得できる便利な機能です。この記事では、describeメソッドの基本的な使い方から、percentilesパラメータを活用して任意のパーセンタイル(百分位数)を計算する方法について解説します。
パーセンタイルとは?
パーセンタイル(Percentile)は、データの値を小さい順に並べたときに、全体の何%のデータが特定の値以下であるかを示す指標です。たとえば、次のように理解できます:
- 50パーセンタイル(中央値)は、データ全体の50%がその値以下である位置を表します。
- 10パーセンタイルは、データ全体の10%がその値以下である位置を示します。
- 90パーセンタイルは、データ全体の90%がその値以下である位置を示します。
このように、パーセンタイルを活用することで、データの分布や偏りを視覚的かつ直感的に把握することができます。特に、極端に小さい値(下位パーセンタイル)や大きい値(上位パーセンタイル)を確認する際に便利です。
使用例
例えば、試験の点数を例に考えてみます。
- あなたの点数が80点で、クラスの点数分布の90パーセンタイルに属している場合、クラス全体の90%の学生が80点以下であることを意味します。
- 一方で、10パーセンタイルに属している場合、クラス全体の10%があなたの点数以下ということになります。
このように、パーセンタイルはデータセットにおける相対的な位置を示す重要な指標として利用されます。
describeメソッドの基本
describeメソッドは、DataFrameやSeriesの統計的な概要を取得するために使用されます。デフォルトでは以下のような統計情報を返します:
- 件数 (
count) - 平均 (
mean) - 標準偏差 (
std) - 最小値 (
min) - 四分位点(25%, 50%(中央値), 75%)
- 最大値 (
max)
上の図に示しているサンプルの元データCSVファイルはこちらから参照して下さい。
サンプルコード(基本例)
以下のようなサンプルデータを用意し、describeメソッドを適用します。
import pandas as pd
# サンプルデータ
data = {
'A': [10, 20, 30, 40, 50],
'B': [15, 25, 35, 45, 55],
}
df = pd.DataFrame(data)
# describeメソッドの適用
summary = df.describe()
print(summary)出力結果:
A B
count 5.000000 5.000000
mean 30.000000 35.000000
std 15.811388 15.811388
min 10.000000 15.000000
25% 20.000000 25.000000
50% 30.000000 35.000000
75% 40.000000 45.000000
max 50.000000 55.000000percentilesパラメータを使用して特定のパーセンタイルを計算する
describeメソッドのpercentilesパラメータを利用すると、デフォルトの25%, 50%, 75%以外のパーセンタイルを指定できます。例えば、10%, 50%, 90%といった指定が可能です。
サンプルコード(percentilesの活用)
# describeメソッドで特定のパーセンタイルを指定
custom_summary = df.describe(percentiles=[0.1, 0.5, 0.9])
print(custom_summary)出力結果:
A B
count 5.000000 5.000000
mean 30.000000 35.000000
std 15.811388 15.811388
min 10.000000 15.000000
10% 14.000000 19.000000
50% 30.000000 35.000000
90% 46.000000 51.000000
max 50.000000 55.000000ここでは、10%, 50%, 90%の値が計算され、四分位点とは異なる詳細な情報が得られることが分かります。
まとめ
Pandasのdescribeメソッドは、データの統計的な要約を得るための強力なツールです。percentilesパラメータを活用することで、デフォルトの四分位点以外の特定のパーセンタイルを計算できます。これにより、データの分布をより詳細に把握することが可能です。
利用シーン
- 特定の分位点でデータを比較する必要がある場合
- 異常値や外れ値の確認を効率化する場合
参考リンク
少しだけPRです。
Pandasについて詳しく知りたいかた、もっと使いこなしたい方におすすめの本です。数年前に購入しましたが、今も手元に置いて時々見返しています。「pandasクックブック Pythonによるデータ処理のレシピ」Theodore Petrou著、黒川利明訳。
最後まで読んでいただきありがとうございます。73

