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