Python 3.x - 外れ値のキャップ

okwaves2024-01-25  10

3 つの数値変数を含むデータ フレームがあり、外れ値を 0.01 ~ 0.99 パーセンタイルに制限しようとしていますが、うまくいきません。

df[['TotalVisits', 'Total Time Spent on Website', 
'Page Views Per Visit']].describe(percentiles=[.25, .5, .75, .90, .95, .99])

これが出力です

今度は、外れ値を次のように制限してみました。

q_l = df['TotalVisits'].quantile(0.00)
q_h = df['TotalVisits'].quantile(0.99)

df['TotalVisits'][df['TotalVisits']<= q_l] = q_l
df['TotalVisits'][df['TotalVisits']>= q_h] = q_h

ただし、最大値が 17 に変更されるのではなく、出力は同じままです。



------------------------

チェーン スライスの割り当てを実行していますが、失敗します。

コードを修正してください

q_l = df['TotalVisits'].quantile(0.00)
q_h = df['TotalVisits'].quantile(0.99)

df.loc[df['TotalVisits']<= q_l, 'TotalVisits'] = q_l
df.loc[df['TotalVisits']>= q_h], 'TotalVisits'] = q_h

パンダ関数を使用してクリップを改善します

df['TotalVisits'] = df['TotalVisits'].clip(lower = q_l, upper = q_h)

0

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。