计算数据框中的多个值

时间:2019-07-12 02:41:17

标签: python dataframe tableau

我有一个数据框,其中显示了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。

谢谢

2 个答案:

答案 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