我有一个数据框,我想绘制每列的直方图。
df_play = pd.DataFrame({'a':['cat','dog','cat'],'b':['apple','orange','orange']})
df_play['a'] = df_play['a'].astype('category')
df_play['b'] = df_play['b'].astype('category')
df_play
df_play.hist(layout = (12,10))
然而我正在ValueError: num must be 1 <= num <= 0, not 1
当我尝试使用整数而不是值中的类别时,它工作得很好,但我真的希望唯一字符串的名称在x轴上。
答案 0 :(得分:1)
您可以在列和绘图之间应用pd.value_counts
。
>>> df_play.apply(pd.value_counts).T.stack().plot(kind='bar')
如果你想要适当的子图或更复杂的东西,我建议你只使用value_counts
进行迭代并自己创建子图。
答案 1 :(得分:0)
由于没有用于分箱的自然参数,或许您想要的而不是直方图是每个Series
value counts的条形图?如果是这样,您可以通过
df_play['a'].value_counts().plot(kind='bar')
答案 2 :(得分:0)