【发布时间】:2016-06-23 19:27:39
【问题描述】:
我有一个客户回答问题的数据集,客户属于某个类别。类别是序数。我想将百分比的变化可视化为比例堆积条形图。以下是一些测试数据:
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
以下是生成它的方法:
pd.DataFrame({'answer':[1,2,3]*5, 'categ':[1,1,2,2,3,3]*2+[3,2,1]})
使用一些可能可以写得更好、更高效的复杂代码,我得到了答案中的百分比。
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
如何将其放入堆积条形图中,每个答案一个条形和每个类别的彩色区域?
【问题讨论】:
标签: python pandas matplotlib data-visualization