如何在 pandas 中的不同列值之后绘制数据箱线图

How to boxplot data after different column values in pandas

我有这样一个数据框:

    Country     Year      Column1    Column2
1   Guatemala   1999        5           1
4   Mexico      2000        1           3
5   Mexico      2000        2           2
6   Mexico      2000        2           1
8   Guatemala   2000        3           2
11  Guatemala   2003        4           3
12  Guatemala   2003        6           4
13  Guatemala   2003        5           5

我想为 Country 中的每个组绘制一个箱线图,显示与 Years 中唯一值的数量相对应的多个框。这些框应代表 Column2 中的值。

我将数据分组并得到这样的箱线图:

df1=df.groupby('Origin').boxplot(column='Column2', subplots=True)

这为我提供了每个国家/地区的箱线图,但其中只有一个图,代表该组的所有值,没有按年分隔。如何为 year 中的每个唯一值获取一个框,代表我代码中 Column2 中的值?

我会使用 seaborn package, in particular combining the FacetGrid with boxplot。 对于您的情况,代码可能如下所示:

import seaborn as sns
g = sns.FacetGrid(df, col="Country", sharex=False)
g.map(sns.boxplot, 'Year', 'Column2')

编辑:这是我从上面的数据中得到的: