计算数据框中的多个值

count multiple value in dataframe

我有一个显示 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。

谢谢

您可以尝试使用以下代码来计算 pandas 数据框列中每个选择的出现次数:

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

你也可以使用这个:-

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

你也可以使用get dummies

data = pd.DataFrame({'id':[0, 1,2,3,4], 'Question1':['a;b;c','a;c','b','a;d','b;c;d']}) 
data['Question1'].str.get_dummies(sep=';').sum()

输出

a    3
b    3
c    3
d    2
dtype: int64