pandas - 使用 Seaborn 绘制箱线图后如何删除异常值?
问题描述
我正在尝试从我的数据集中删除异常值。
如何获得晶须末端的值?
假设: min 的值为:0 我的第 25 个四分位数的值为:125 我的第 75 个四分位数的值为:1938 max 的值为:113499
我尝试了类似以下的方法,但不确定它是否正确:
clean_model.drop(clean_model[clean_model.num_likes > (1938 + (1.5* (1938-125)))].index, inplace=True)
该计算 (1938 + (1.5* (1938-125))) 是否正确,以获得图中点的值?
以下是我的数据框的描述:
解决方案
你的计算是正确的。晶须长度计算为一些“晶须”因子(在 matplotlib / seaborn 中默认为 1.5)乘以四分位数间距(iqr)。
使用numpy.percentile
例如:
import numpy as np
p_25, p_75 = np.percentile(clean_model['num_likes'], [25, 75])
iqr = p_75 - p_25
upper_bound = p_75 + 1.5 * iqr
lower_bound = p_25 - 1.5 * iqr
scipy.stats
还有一个方便的功能iqr
,您可以使用:
from scipy.stats import iqr
_iqr = iqr(clean_model['num_likes'])
推荐阅读
- mongodb - MongoDB - 如果字段不存在,如何仅更新字段
- c# - 服务生命周期瞬态 vs 作用域 vs 单例
- .net - 呼叫 ssrs 报告
- python - Python tkinter - 帧内帧导致问题
- csv - 使用 RDD 从 CSV 文件过滤数据
- go - 在 Go 中构建一个“公共静态”的字符串?
- python - 启用急切执行时如何运行并行 map_fn
- java - 如何让单个 GSON 自定义序列化程序应用于所有子类?
- python - 画布上的 Tkinter 绘图被延迟
- c# - 如何从源代码构建 CEFSharp (CefSharp.BrowserSubprocess.Core.dll)