首页 > 解决方案 > Pandas boxplot:df.plot.box 和 df.boxplot 的区别?

问题描述

假设我们有这个样本DataFrame......

df = pd.DataFrame(
    data=[["A", 2, 5, 1],
          ["A", 8, 1, 5],
          ["C", 2, 2, 1],
          ["C", 9, 7, 9],
          ["C", 6, 2, 5],
          ["C", 3, 8, 5],
          ["B", 8, 5, 2],
          ["B", 6, 1, 5],
          ["B", 6, 5, 3]],
    columns=["category", "feature1", "feature2", "feature3"]
)

...而且我想要按类别分组的 3 个功能的箱线图。

根据文档df.plot.box()

by:字符串或序列

DataFrame 中要分组的列。

我认为这应该可以解决问题。然而,df.plot.box(by="category")结果是:

在此处输入图像描述

这是错误的,不是吗?它绝对不是按 分组的category

此外,df.groupby("category").plot.box()绘制每个单独的组,而不是分组category并绘制联合图:

在此处输入图像描述

更有趣的是df.boxplot(by="category"),我认为它应该只是一个别名,会产生正确的结果:

在此处输入图像描述

这是为什么?

标签: pythonpandasdataframeboxplot

解决方案


推荐阅读