我希望将我的数据可视化成箱形图,并按另一个变量进行分组,如下图所示:
我使用 pandas 系列变量来告诉 pandas 我已经对变量进行了分组,具体操作如下:
这是我得到的结果: 然而,我本来期望得到两个箱线图,每个箱线图只描述第一列数据,按照第二列数据(转换为Series)中对应的列进行分组,而上述图表则显示了每列数据分开的情况,这不是我想要的。
import pandas as pd
import seaborn as sns
#example data for reproduciblity
a = pd.DataFrame(
[
[2, 1],
[4, 2],
[5, 1],
[10, 2],
[9, 2],
[3, 1]
])
#converting second column to Series
a.ix[:,1] = pd.Series(a.ix[:,1])
#Plotting by seaborn
sns.boxplot(a, groupby=a.ix[:,1])
这是我得到的结果: 然而,我本来期望得到两个箱线图,每个箱线图只描述第一列数据,按照第二列数据(转换为Series)中对应的列进行分组,而上述图表则显示了每列数据分开的情况,这不是我想要的。
sns.boxplot(df[['a', 'a2']], groupby=df.b)
。但是,它将合并所有列的所有值,然后按组计算统计信息,因此您将失去列之间的区别。保留区别并同时绘制所有内容需要对原始数据框进行一些重构。 - Rutger Kassiessns.boxplot
接受groupby
参数吗?这似乎不是官方 API 的一部分。 - gented