gpt4 book ai didi

python - 为行中的每个值创建一个新列

转载 作者:行者123 更新时间:2023-12-01 02:18:20 25 4
gpt4 key购买 nike

我有以下 pandas 数据框:

name        state   postcode
coles vic 2501
woolworth nsw 3409
big w act 3201
target vic 1089

我需要将这个集合转换为如下所示,我通常手动执行,但是这次我在状态中有很多值,我的目标是将它们放在包含 yes 和 no 的列中。在 Stata 中,我将循环遍历,但是在 Python 中我有点迷失了。

name       state    postcode    VIC  NSW    ACT  NT
coles VIC 2501 Y N N N
woolworth NSW 3409 N Y N N
big w ACT 3201 N N Y N
target NT 1089 N N N Y

最佳答案

使用get_dummiesreplace对于 NY:

df = df.join(pd.get_dummies(df['state']).replace({0:'N', 1:'Y'}))
print (df)
name state postcode act nsw vic
0 coles vic 2501 N N Y
1 woolworth nsw 3409 N Y N
2 big w act 3201 Y N N
3 target vic 1089 N N T

或转换为bool:

df = df.join(pd.get_dummies(df['state']).astype(bool))
print (df)
name state postcode act nsw vic
0 coles vic 2501 False False True
1 woolworth nsw 3409 False True False
2 big w act 3201 True False False
3 target vic 1089 False False True

或者如果可能的话 01 值:

df = df.join(pd.get_dummies(df['state']))
print (df)
name state postcode act nsw vic
0 coles vic 2501 0 0 1
1 woolworth nsw 3409 0 1 0
2 big w act 3201 1 0 0
3 target vic 1089 0 0 1

关于python - 为行中的每个值创建一个新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48165710/

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