我有一个数据框,其中显示了5个学生的多项选择题的答案:
id Question 1
0 a;b;c
1 a;c
2 b
3 a;d
4 b;c;d
我想计算一次选择的次数。例如,最终答案应为
a:3
b:3
c:3
d:2
那么有没有一种快速的方法来使用python获取解决方案?
此外,我正在使用来自数据框的数据在Tableau中进行可视化。 Tableau的计数如下:
a;b;c appear once
a;c appear once
b appear once
a;d appear once
b;c;d appear once
有没有办法直接使用Tableau获得以上结果?或者,我必须先在python中做一些事情,然后再使用tableau。
谢谢
答案 0 :(得分:3)
您可以尝试下面的代码来统计每个选择在熊猫数据框列中的出现:
data = pd.DataFrame({'id':[0, 1,2,3,4], 'Question1':['a;b;c','a;c','b','a;d','b;c;d']})
count = data.Question1.str.split(';', expand=True).stack().value_counts()
输出:
a 3
b 3
c 3
d 2
dtype: int64
答案 1 :(得分:2)
您还可以使用此功能:-
data = pd.DataFrame({'id':[0, 1,2,3,4], 'Question1':['a;b;c','a;c','b','a;d','b;c;d']})
temp_list = []
for var in data['Question1'].values:
for x in var.split(';'):
temp_list.append(x)
value, count = np.unique(temp_list, return_counts=True)
for v,c in zip(value, count):
print(f"{v} -->> {c}")
输出
a -->> 3
b -->> 3
c -->> 3
d -->> 2