首页 > 解决方案 > 熊猫:来自几列的seaborn countplot

问题描述

我有一个包含几个分类列的数据框。我知道如何做 countplot 常规地绘制一列。问:如何在一个图中绘制所有列的最大计数?

这是一个用于澄清问题的示例性数据框:

import pandas as pd
import numpy as np
import seaborn as sns

testdf=pd.DataFrame(({   'Ahome' :   pd.Categorical(["home"]*10),
                         'Bsearch' : pd.Categorical(["search"]*8 + ["NO"]*2),
                          'Cbuy' : pd.Categorical(["buy"]*5 + ["NO"]*5),
                          'Dcheck' : pd.Categorical(["check"]*3 + ["NO"]*7),


                     } ))
testdf.head(10)
sns.countplot(data=testdf,x='Bsearch');

最后一行只是对一列使用正常的计数图。我想在 x 轴上有列类别(家庭、搜索、购买和检查),在 y 轴上有它们的频率。

提前致谢!

标签: pythonpandasseaborn

解决方案


您需要使用countplot如下:

df = pd.melt(testdf)
sns.countplot(data=df.loc[df['value']!="NO"], x='variable', hue='value')

输出:

在此处输入图像描述


推荐阅读