gpt4 book ai didi

python - 使用 pandas 处理多选问卷(来自 Google Forms)结果

转载 作者:行者123 更新时间:2023-11-28 21:21:59 31 4
gpt4 key购买 nike

我有一个 Google 表单,我正在使用它来收集调查数据(对于这个问题,我将使用 example form ),其中包含可以有多个答案的问题,使用一组复选框进行选择。

当我从表单中获取数据并将其导入 pandas 时,我得到了这个:

             Timestamp    What sweets do you like?
0 23/11/2013 13:22:30 Chocolate, Toffee, Popcorn
1 23/11/2013 13:22:34 Chocolate
2 23/11/2013 13:22:39 Toffee, Popcorn, Fruit
3 23/11/2013 13:22:45 Fudge, Toffee
4 23/11/2013 13:22:48 Popcorn

我想对问题的结果进行统计(有多少人喜欢巧克力,有多少人喜欢太妃糖等)。问题是,所有答案都在一列中,因此按该列分组并询问计数是行不通的。

Pandas 中是否有一种简单的方法可以将这种数据框转换成一个包含多列的数据框,分别称为 Chocolate、Toffee、Popcorn、Fudge 和 Fruit,其中每一列都是 bool 值(1 表示是,0 表示否) ?我想不出一个明智的方法来做到这一点,我不确定它是否真的有帮助(以这种方式进行我想做的聚合可能会更难)。

最佳答案

几天前我遇到了同样的问题,经过一番搜索,我找到了str.get_dummies在 Pandas 文档中的功能。让我们看看它是如何工作的:

pandas.Series.str.get_dummies

如文档中所述,str.get_dummiessep 拆分 Series 中的每个字符串并返回虚拟/指标变量的 DataFrame。

这是上述 DataFrame 的简化版本:

In [27]: df
Out[27]:
What sweets do you like?
0 Chocolate, Toffee, Popcorn
1 Chocolate
2 Toffee, Popcorn, Fruit
3 Fudge, Toffee
4 Popcorn

我们需要在 str.get_dummies 中指定的唯一参数是 sep,在我们的例子中是逗号:

In [28]: df['What sweets do you like?'].str.get_dummies(sep=', ')
Out[28]:
Chocolate Fruit Fudge Popcorn Toffee
0 1 0 0 1 1
1 1 0 0 0 0
2 0 1 0 1 1
3 0 0 1 0 1
4 0 0 0 1 0

注意:

注意 sep 参数中逗号后有一个空格,因为空格本身就是一个字符,如果我们不将其包含在 sep 中,结果将是类似下面的内容显然是错误的:

In [29]: df['What sweets do you like?'].str.get_dummies(sep=',')
Out[29]:
Fruit Popcorn Toffee Chocolate Fudge Popcorn Toffee
0 0 1 1 1 0 0 0
1 0 0 0 1 0 0 0
2 1 1 0 0 0 0 1
3 0 0 1 0 1 0 0
4 0 0 0 0 0 1 0

根据经验,始终注意准确书写分隔符!

关于python - 使用 pandas 处理多选问卷(来自 Google Forms)结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162926/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com