我有一个如下所示的数据帧
+---+-------------+---------+---------------+---------------+---------+------+--------------------------+-----+----------+
| | Pregnancies | Glucose | BloodPressure | SkinThickness | Insulin | BMI | DiabetesPedigreeFunction | Age | Outcome |
+---+-------------+---------+---------------+---------------+---------+------+--------------------------+-----+----------+
| 0 | 6 | 148.0 | 72.0 | 35.0 | 125.0 | 33.6 | 0.627 | 50 | 1 |
| 1 | 1 | 85.0 | 66.0 | 29.0 | 125.0 | 26.6 | 0.351 | 31 | 0 |
| 2 | 8 | 183.0 | 64.0 | 29.0 | 125.0 | 23.3 | 0.672 | 32 | 1 |
| 3 | 1 | 89.0 | 66.0 | 23.0 | 94.0 | 28.1 | 0.167 | 21 | 0 |
| 4 | 0 | 137.0 | 40.0 | 35.0 | 168.0 | 43.1 | 2.288 | 33 | 1 |
+---+-------------+---------+---------------+---------------+---------+------+--------------------------+-----+----------+
在看了每个变量的方框图之后,我发现它们有异常值。你知道吗
所以在除Outcome
之外的每一列中,我想替换特定列的greater than 95 percentile with value at 75 percentile
值和less than 5 percentile with 25 percentile
值
例如,在Glucose
列中,大于95%的值,我想用Glucose
列中75%的值替换它们
如何使用过滤器和百分位函数实现这一点
任何帮助都将不胜感激
可以对除
outcome
之外的所有列使用apply
,函数为np.clip
和np.percentile
:[编辑]我首先误读了这个问题,这里有一种方法可以使用
np.select
将第5个和第95个百分位分别更改为第25和第75个百分位:相关问题 更多 >
编程相关推荐