【问题标题】:Could not interpret input 'percent' when making a barplot [duplicate]制作条形图时无法解释输入“百分比”[重复]
【发布时间】:2021-12-18 19:47:18
【问题描述】:

我有一个数据框,设置如下:

index   Category      Item
1       a             true
2       b             false
3       c             true
4       b             true
5       c             false
6       a             false
7       b             true
8       c             False

我想制作一个分组条形图,我可以在其中可视化每个类别 a、b 和 c 的真值和假值的百分比。我在下面提供了绘制此数据的尝试。我不断收到的错误是“无法解释输入'百分比'”。任何帮助表示赞赏。我对 seaborn 和 pandas 非常陌生。

sns.barplot(data=DF.loc[:,["Category", "Item"]], x="Category", y="percent", hue="Item", order=["a", "b", "c"])

【问题讨论】:

    标签: python pandas matplotlib pandas-groupby seaborn


    【解决方案1】:

    参数y 应该是您通过data 参数传递给函数的数据框的一列。在这里,您将传递它DF.loc[:,["Category", "Item"]],它只有 2 列,类别和项目。尝试改用data=DF。

    【讨论】:

      【解决方案2】:

      您首先需要修改您的数据框以应用具有标准化计数的value_counts:

      df2 = (df.groupby('Category')['Item']
               .value_counts(normalize=True)
               .rename('percent').reset_index()
              )
      
      sns.barplot(data=df2, x="Category", y="percent", hue="Item", order=["a", "b", "c"])
      

      注意。归一化计数是分数(介于 0 和 1 之间),如果您想要百分比,请乘以 100

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-04
        • 1970-01-01
        • 1970-01-01
        • 2021-11-11
        • 2019-09-27
        • 1970-01-01
        相关资源
        最近更新 更多