我有一个客户回答问题的数据集,客户属于某个类别。类别是序数的。我想把百分比的变化想象成一个比例堆积条形图。以下是一些测试数据:answer | categ
1 1
2 1
3 2
1 2
2 3
3 3
1 1
2 1
3 2
1 2
2 3
3 3
1 3
2 2
3 1
下面是如何生成它:
^{pr2}$
使用一些可以写得更好更高效的复杂代码,我得到了答案中的百分比。在test = pd.DataFrame({'answer':[1,2,3]*5, 'categ':[1,1,2,2,3,3]*2+[3,2,1]})
rel_data = pd.merge(pd.DataFrame(test.groupby(['answer','categ']).size()).reset_index(),pd.DataFrame(test.groupby('answer').size()).reset_index(), how='left', on='answer')
rel_data.columns = ['answer', 'categ', 'number_combination', 'number_answer']
rel_data['perc'] = rel_data['number_combination']/rel_data['number_answer']
rel_data[['answer', 'categ', 'perc']]
这将导致:answer | categ | perc
1 1 0.4
1 2 0.4
1 3 0.2
2 1 0.4
2 2 0.2
2 3 0.4
3 1 0.2
3 2 0.4
3 3 0.4
我如何把它变成一个堆积条形图,每个答案有一个条形图,每个类别都有彩色区域?在