如何拆分DataFrame字符串列并按取值生成对应0/1新列
实现方案
方案1(推荐,代码最简洁)
直接使用pandas内置的字符串独热编码方法,一步生成0/1矩阵:
# 按分隔符`, `对symptoms列做独热编码,自动生成对应症状列 symptom_onehot = df['symptoms'].str.get_dummies(sep=', ') # 把编码结果和原DataFrame按行拼接 df2 = pd.concat([df, symptom_onehot], axis=1)
输出结果完全匹配你需要的格式,症状列存在对应值为1,不存在为0。
方案2(基于你已写的split代码的后续处理)
如果你已经做了拆分操作,可以按以下步骤继续处理:
# 你已有的拆分代码,注意要指定分隔符为`, ` split_ = df["symptoms"].str.split(', ', expand=True) # 拆分结果转长格式后做独热编码,再按原行索引聚合得到每行的症状标识 symptom_onehot = pd.get_dummies(split_.stack()).sum(level=0) # 拼接回原表 df2 = pd.concat([df, symptom_onehot], axis=1)
内容的提问来源于stack exchange,提问作者Sahil
相关产品推荐
相关产品推荐

