2016-01-15 65 views
1

我想通过在Seaborn (即媒体,四分位数)中生成的箱线获取具体的值。例如,在下面的boxplot(来源:link) 有什么方法可以获取媒体和四分位数而不是手动估计?在Seaborn boxplot中获取值

import numpy as np 
import seaborn as sns 
sns.set(style="ticks", palette="muted", color_codes=True) 

# Load the example planets dataset 
planets = sns.load_dataset("planets") 

# Plot the orbital period with horizontal boxes 
ax = sns.boxplot(x="distance", y="method", data=planets, 
      whis=np.inf, color="c") 
+0

尝试'np.median'? – mwaskom

+0

我试过'np.median(行星)',我得到了一个价值,而不是每个箱子的媒体。我会感谢任何见解。 – Omar

+0

我会熟悉熊猫groupby方法:http://pandas.pydata.org/pandas-docs/stable/groupby.html – mwaskom

回答

0

我鼓励大家熟悉使用熊猫来从数据框中提取定量信息。举例来说,你可以很简单的事情做的就是你正在寻找的值(和其他有用的)是:

planets.groupby("method").distance.describe().unstack() 

它打印有用的值的一个表中的每个方法。

或者,如果你只是想位数:

planets.groupby("method").distance.median() 
+0

嘿@mwaskom。有没有办法获得给定分位数的特定列的值?例如,我的df有一个'ID'列。我可以这样做''cp.groupby([cp ['issue_date']。dt.month])。describe()。unstack()'并获得像上面显示的内容。但是,对于每个组,我希望获得落在给定分位数中的ID。 – pceccon