python:打开虚拟变量

2024-09-26 21:41:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想为列TypePhase添加虚拟变量。你知道吗

wm_id                                   TypePhase
   2                   ['N', 'A', 'B', 'C', 'D']
   2                   ['N', 'A', 'B', 'C', 'D']
   3                   ['N', 'W', 'A', 'B', 'C', 'D']
   2                   ['N', 'A', 'B', 'C', 'D']
   3                   ['N', 'P', 'A', 'B', 'C', 'D']
   2                   ['N', 'A', 'B', 'C', 'D']

我试过df.TypePhase = df.TypePhase.apply(lambda s : '_'.join(s)),但没有得到预期的结果。我知道我需要申请

pd.get_dummies(df_new['TypePhase']).rename(columns=lambda x: 'AAAAAAAAA_' + str(x))

但我不明白。 有什么建议吗? 非常感谢。 卡罗


Tags: columnslambdaiddfnewgetpdapply
1条回答
网友
1楼 · 发布于 2024-09-26 21:41:16

我认为所有的值都是列TypePhase中的字符串,所以可以将^{}与double ^{}一起使用。你知道吗

最后^{}到原件。你知道吗

^{}函数从原始列中提取列,所以不必删除它。你知道吗

print (type(df.loc[0, 'TypePhase']))
<class 'str'>

df1 = df.pop('TypePhase').str.strip('[]').str.get_dummies(', ')
#remove ' from new column names
df1.columns = df1.columns.str.strip("'")

df = df.join(df1)
print (df)
   wm_id  A  B  C  D  N  P  W
0      2  1  1  1  1  1  0  0
1      2  1  1  1  1  1  0  0
2      3  1  1  1  1  1  0  1
3      2  1  1  1  1  1  0  0
4      3  1  1  1  1  1  1  0
5      2  1  1  1  1  1  0  0

相关问题 更多 >

    热门问题