你好!我有一张问卷表格。多个问题包含多个答案,答案将收集为一人一答案(在一个单元格中)。
id | 你喜欢什么水果? |
---|---|
122 | 苹果、葡萄、猕猴桃 |
412 | 猕猴桃、芒果、柠檬 |
... | ... |
所以我尝试拆分所有单元格来制作表格并得到(示例):
data['What fruits do you like'].str.split(',',expand=True)
索引 | 1 | 2 | 3 |
---|---|---|---|
0 | 苹果 | 葡萄 | 猕猴桃 |
1 | 猕猴桃 | 芒果 | 柠檬 |
... | ... | ... | ... |
现在我想做一个表,其中索引是水果的名称,值是拆分表中满足水果的数量:
水果 | 数量 |
---|---|
苹果 | 1 |
猕猴桃 | 2 |
葡萄 | 1 |
... | ... |
我尝试拆分一个表并制作一个数据透视表,但我不明白如何使数据透视表的列中仅包含从 0 到 10 的值和索引。 我尝试写for循环,但不知道如何收集数据。
split
,explode
,然后value_counts
:
out = df['What fruits do you like?'].str.split(', *').explode().value_counts()
输出:
What fruits do you like?
kiwi 2
apple 1
grapes 1
mango 1
lemon 1
Name: count, dtype: int64