【问题标题】:How to remove outliers in a certain category of data?如何去除某类数据中的异常值?
【发布时间】:2020-05-13 14:08:40
【问题描述】:

boxplot for the data

plot = sns.boxplot(y = 'charges', x = 'smoker' , data = df)

我试图在此处删除“否”类别的异常值。我过滤了没有值

no_charges = d[d.smoker == 'no'].charges

计算 IQR

Q1 = no_charges.quantile(0.25)
Q3 = no_charges.quantile(0.75)
IQR = Q3-Q1

过滤掉异常值

da = df.copy()
no = da[da.smoker == 'no']
rem = no[(no.charges > (Q3 + 1.5*IQR)) | (no.charges < (Q3 - 1.5*IQR))]

但是当我尝试从主表中删除所需数据时遇到问题

da.drop[[(no.charges > (Q3 + 1.5*IQR)) | (no.charges < (Q3 - 1.5*IQR))], inplace=True]

我们可以这样做吗?如果没有,那么如何过滤这些值?

【问题讨论】:

  • 您面临什么问题?如果您也包含错误消息会更好。
  • 文件“”,第 1 行 da.drop[[(no.charges > (Q3 + 1.5*IQR)) | (no.charges

标签: python statistics boxplot data-cleaning


【解决方案1】:

去除异常值

df = da[~((no_charges < (Q1 - 1.5 * IQR)) |(no_charges > (Q3 + 1.5 * IQR))).any(axis=1)]

您可以参考此答案以获取详细说明。

https://stackoverflow.com/a/50461938/1727543

【讨论】:

    猜你喜欢
    • 2019-07-06
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    • 2018-01-18
    • 2012-12-08
    相关资源
    最近更新 更多