- データサイエンス100本ノックをやりきる会を作りました🎉
- こちらのSlack招待URLからご参加ください!!
- ぜひ一緒に励まし合いながら、データサイエンス100本ノックをやり切りたいと思っています!
Youtube
動画解説もしています。
問題
P-032: レシート明細データフレーム(df_receipt)の売上金額(amount)について、25%刻みでパーセンタイル値を求めよ。
解答
np.percentile(df_receipt['amount'], q=[25, 50, 75,100])
出力
array([102. ,170. ,288. ,10925. ])
解答
df_receipt.amount.quantile(q=np.arange(5)/4)
出力
0.00 10.0
0.25 102.0
0.50 170.0
0.75 288.0
1.00 10925.0
Name: amount, dtype: float64
解説
・コード1はNumPyメイン、コード2はPandasメインです。
・'np.percentile(<データ名>[<列名>], q=[ , , , ])'は、NumPyの'percentile'関数を使用しています。
・データを小さい順に並べた時に、初めから数えて全体のN%にあるデータをNパーセンタイルと呼びます。
・第一四分位数は25パーセンタイル、中央値は50パーセンタイル、第三四分位数は75パーセンタイルです。
・'np.percentile'は、NumPyの関数であり、パーセンタイルを算出します。'q'でパーセンタイルを指定します。
・'.quantile'は、Pandasの関数であり、パーセンタイルを算出します。'q'でパーセンタイルを指定します。
・'np.arange'は、NumPyの関数であり、等差数列を指定します。例えば、'np.arange(1,10,2)'は、1から10までの等差2の数列を指定します。
・今回の場合、'np.arange(5)'は、0から4までの等差1の数列[0,1,2,3,4]を指定しています。初めの数および等差の指定がない場合は、0始まり、等差1となります。
・np.arange(5)=[0,1,2,3,4]であり、それを4で割っているので、パーセンタイルとして指定しているのは[0, 0.25, 0.5, 0.75, 1]となります。