我需要获取生成的统计数据,以便在Pandas中绘制一个箱形图(使用数据框创建箱形图).即Quartile1,Quartile2,Quartile3,较低的晶须值,较高的晶须值和异常值.
我尝试了以下查询来绘制Boxplot.
我尝试了以下查询来绘制Boxplot.
import pandas as pd df = pd.DataFrame(np.random.rand(100,5),columns=['A','B','C','D','E']) pd.DataFrame.Boxplot(df,return_type = 'both')
有没有办法做到而不是手动计算值?
解决方法
一种选择是使用图中的y数据 – 可能对离群值(传单)最有用
_,bp = pd.DataFrame.Boxplot(df,return_type='both') outliers = [flier.get_ydata() for flier in bp["fliers"]] Boxes = [Box.get_ydata() for Box in bp["Boxes"]] medians = [median.get_ydata() for median in bp["medians"]] whiskers = [whiskers.get_ydata() for whiskers in bp["whiskers"]]
但是使用其中任何一个(包括IQR)获得其他值可能更为直接
quantiles = df.quantile([0.01,0.25,0.5,0.75,0.99])
或者,正如WoodChopper所建议的那样
stats = df.describe()