如何将pandas DataFrame指定列转换为元素存在性的0-1矩阵
分隔多值列转0/1标记列实现方案
核心实现(Pandas环境)
Pandas内置的字符串哑变量编码方法支持直接按指定分隔符拆分编码,一行代码即可得到目标结果。
# 导入依赖 import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'animals': [ 'dog;mouse;cat', 'cat;dog', 'dog', 'mouse;cat', 'dog;cat' ] }) # 核心转换代码,执行后result即为需求要求的0/1标记矩阵 result = df['animals'].str.get_dummies(sep=';') # 若需要将结果合并回原数据集,可执行拼接 df = pd.concat([df, result], axis=1)
复杂场景适配
如果分隔后的元素前后存在多余空格(比如dog; mouse; cat这类格式),可先对元素做清洗后再编码:
result = df['animals'].str.split(';', expand=True) \ .stack() \ .str.strip() \ .str.get_dummies() \ .groupby(level=0) \ .sum()
内容的提问来源于stack exchange,提问作者pbartkow
相关产品推荐
相关产品推荐

