我是EDA新手,我刚刚想出了一种方法来找到我的boxplot个数字数据,然而,我很难获得相关的信息:

方框图图像:

boxplot image

有谁能告诉我:

  1. 当我看着boxplot的时候,我能期待什么
  2. 为什么除了年龄,他们看起来不像一个盒子?
  3. 我怎么知道它是否是异常值.

顺便说一句,下面是我使用的盒子图代码:

def plot_boxplots_grid(dataframe, n_cols=3, subplot_size=(5, 3)):
    numerical_cols = [col for col in dataframe.columns if dataframe[col].dtype != 'object' and dataframe[col].nunique() > 2]
    n_rows = (len(numerical_cols) + n_cols - 1) // n_cols 
    plt.figure(figsize=(subplot_size[0] * n_cols, subplot_size[1] * n_rows))
    for i, col in enumerate(numerical_cols):
        plt.subplot(n_rows, n_cols, i + 1)  
        sns.boxplot(y=dataframe[col])
        plt.title(col)
    plt.tight_layout() 
    plt.show()

推荐答案

1.当我看箱线图时,我能期待什么?

article很好地解释了盒子图,并指导你完成了计算.简而言之:

盒子和胡须图-也称为盒子图-显示一组数据的五位数摘要.五个数字的总和是最小的、第一个四分位数、中位数、第三个四分位数和最大值.

框图还将显示离群值,具体取决于您如何定义这些离群值.异常值通常是大于/小于1.5 x IQR的数据点,其中IQR代表四分位数范围(Q3-Q1).然而,这只是一个标准.

2.为什么它们看起来不像一个盒子?

这是因为您的数据集中有许多其他变量的异常值-异常值由菱形标记表示.Seborn正在显示所有的数据,所以大量的异常值将盒子面积"挤压"到了一个非常小的高度.try 在定义盒子图的行中设置showfliers=False,这样可以删除异常值.完成此操作后,您应该会看到更标准的框图.

然而,对于您拥有的所有异常值,框图not似乎是显示数据的正确 Select ,通过删除异常值,您隐藏了重要的数据点并扭曲了结果.我会推荐小提琴情节,我觉得它在视觉上更有吸引力,你也可以用小提琴来绘制盒子情节.Seborn有一个seaborn.violinplot()方法,您可以使用与seaborn.boxplot()非常相似的输入.

3.如何判断它是否是一个异常值?

当使用海运时,标准是用钻石标记显示异常值.在这款post中,Seborn似乎使用了标准的1.5 x IQR:

通过测试,Seborn似乎使用Whis=1.5作为默认设置.

其中whissns.boxplot()方法的可选参数:

whis : float, optional
    Proportion of the IQR past the low and high quartiles to extend the plot whiskers.
    Points outside this range will be identified as outliers.

Python相关问答推荐

TARete错误:类型对象任务没有属性模型'

使用numpy提取数据块

如何将双框框列中的成对变成两个新列

带条件计算最小值

对于一个给定的数字,找出一个整数的最小和最大可能的和

Python库:可选地支持numpy类型,而不依赖于numpy

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

部分视图的DataFrame

如何在Polars中从列表中的所有 struct 中 Select 字段?

在ubuntu上安装dlib时出错

如何在UserSerializer中添加显式字段?

启动带有参数的Python NTFS会导致文件路径混乱

未调用自定义JSON编码器

pysnmp—lextudio使用next()和getCmd()生成器导致TypeError:tuple对象不是迭代器''

通过追加列表以极向聚合

Python类型提示:对于一个可以迭代的变量,我应该使用什么?

一个telegram 机器人应该发送一个测验如何做?""

如何使用pytest在traceback中找到特定的异常

在第一次调用时使用不同行为的re. sub的最佳方式

Pandas 数据框自定义排序功能