gpt4 book ai didi

python - Pandas- 通过在 | 上拆分单元格来创建新列n次

转载 作者:太空宇宙 更新时间:2023-11-04 08:54:13 29 4
gpt4 key购买 nike

我有一个包含一些调查结果的 DataFrame;每列都是对一个问题的回答。但是,对于允许从复选框中选择多个(<10)答案的问题,该列已将这些答案与格式“Response 1 Checked | Response 4 Checked | Response 6 Checked ....”连接起来,所以我不能只是根据预定义的顺序拆分列,因为它不会说明什么时候没有检查。

ID     NormalResponse    MultipleCheckboxResponse
1 Answer3 Response 3
2 Answer1 Response 1| Response 7
3 Answer2 Response 2| Response 4| Response 7
4 Answer2 Response 2 | Response 3

我如何将这些原因拆分为新的列,最好只在单元格中使用 bool 标记或 1/0 来确定它是否被标记。

我想看看

ID     NormalResponse    Response1    Response2   Response3     Response4...
1 Answer3 0 0 1 0
2 Answer1 1 0 0 0
3 Answer2 0 1 0 1
4 Answer2 0 1 1 0

最佳答案

您可以使用 get_dummies , 经过一些字符串操作以删除竖线周围的空格 |:

>>> resp = df.MultipleCheckboxResponse.str.replace("[\s]*\|[\s]*", "|")
>>> dummies = resp.str.get_dummies(sep="|")
>>> df.iloc[:,:2].join(dummies)
ID NormalResponse Response 1 Response 2 Response 3 Response 4 Response 7
0 1 Answer3 0 0 1 0 0
1 2 Answer1 1 0 0 0 1
2 3 Answer2 0 1 0 1 1
3 4 Answer2 0 1 1 0 0

请注意,这只会为实际看到的响应生成列。如果您想要一个 response6 列,即使没有人报告过 response6,那么您需要自己将它们添加到一个循环中。

关于python - Pandas- 通过在 | 上拆分单元格来创建新列n次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31863702/

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