调查结果的条形图为pd.value_counts()

时间:2019-02-25 07:31:57

标签: python pandas plot survey

我进行了一项调查,答案可能是1到7,例如从“绝对不幸福”到“绝对幸福”以及介于两者之间的所有数据都是熊猫系列。在其上执行data.value_counts()会产生有序表

5.0  6
6.0  5
7.0  5
3.0  1
2.0  1

我如何将其转换为条形图,其中a)出现7条,每个答案可能性一个,b)以1-7的顺序排列,而不是根据大小排列,c)带有单独的名称(极度不快乐,不快乐) ,部分不快乐,中立,部分快乐,快乐,非常幸福),而不是1-7的酒吧?谢谢!

1 个答案:

答案 0 :(得分:1)

通过zip创建字典,通过Index.mapreindex创建地图索引以按设置顺序添加缺失的类别,最后使用Series.plot.bar绘制情节:

s = pd.Series([6,5,5,1,1], index=[5.0,6.0,7.0,3.0,2.0])

cats = ['extremely unhappy', 'unhappy', 'partly unhappy', 
        'neutral', 'partly happy', 'happy', 'extremely happy']
vals = range(1, 8)
d = dict(zip(vals, cats))

s.index = s.index.map(d.get)
s1 = s.reindex(cats, fill_value=0)
print (s1)
extremely unhappy    0
unhappy              1
partly unhappy       1
neutral              0
partly happy         6
happy                5
extremely happy      5
dtype: int64

s1.plot.bar()