gpt4 book ai didi

python - 如何在 python 中使用 pandas 将多项选择题转换为可读数据?

转载 作者:行者123 更新时间:2023-12-02 16:03:33 24 4
gpt4 key购买 nike

我有一些调查数据,我正试图将其整理成更有利于分析的数据。

我已经能够找到关于大多数问题的不错的指南,但有一个 - 处理传递到单个专栏中的多项选择题。

将其拆分为单独的列的最佳做法是什么?

我通常会在 SQL 中执行此操作,并且我会在检查每个不同选项时创建一个 CASE,创建与选项一样多的列。

这是我正在使用的示例表:


+----+----------------------------+
| ID | When did you attend? |
+----+----------------------------+
| 1 | Monday\nTuesday |
+----+----------------------------+
| 2 | Monday\nTuesday\nWednesday |
+----+----------------------------+
| 3 | Monday\nFriday\nSaturday |
+----+----------------------------+

这就是我认为可以转化为:

+----+----------------------------+--------+---------+-----------+----------+--------+----------+--------+
| ID | When did you attend? | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday |
+----+----------------------------+--------+---------+-----------+----------+--------+----------+--------+
| 1 | Monday\nTuesday | True | True | False | False | False | False | False |
+----+----------------------------+--------+---------+-----------+----------+--------+----------+--------+
| 2 | Monday\nTuesday\nWednesday | True | True | True | False | False | False | False |
+----+----------------------------+--------+---------+-----------+----------+--------+----------+--------+
| 3 | Monday\nFriday\nSaturday | True | False | False | False | True | True | False |
+----+----------------------------+--------+---------+-----------+----------+--------+----------+--------+

到目前为止,我已经弄清楚如何使用 df.iloc[:,1].str.split('\n') 将第二列中的字符串部分传递到列表中,但我还没有想出接下来的步骤(即使那是必要的)。

对我来说,这似乎可以更容易地根据出席的日期来分割其余数据。

最佳答案

我们可以使用 str.get_dummies 围绕分隔符 \n 拆分字符串并创建指标变量数据框,然后 reindex 此数据框沿列轴并将 dtype 更改为 bool 值,最后 join 给定数据框与指标数据框以获得结果

import calendar

df.join(
df['When did you attend?'].str.get_dummies(sep='\n')
.reindex(calendar.day_name, axis=1, fill_value=0).astype(bool)
)

   ID        When did you attend?  Monday  Tuesday  Wednesday  Thursday  Friday  Saturday  Sunday
0 1 Monday\nTuesday True True False False False False False
1 2 Monday\nTuesday\nWednesday True True True False False False False
2 3 Monday\nFriday\nSaturday True False False False True True False

关于python - 如何在 python 中使用 pandas 将多项选择题转换为可读数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70051045/

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