如何按分隔符拆分列并生成分类对应的0/1值新列?
实现方法(基于Python Pandas)
直接用Pandas的str.get_dummies方法就能一步到位完成需求,无需手动拆分后逐个处理列,具体操作如下:
预处理分隔符(可选):如果你的
genres列是用,(逗号加空格)分隔类别,可先统一格式;若本来就是纯逗号分隔,这步可跳过:import pandas as pd # 假设数据集存储在df变量中 df['genres'] = df['genres'].str.replace(', ', ',')生成独热编码列:
# 按逗号拆分类别,生成独热编码列,并给列名添加genres_前缀 genre_onehot = df['genres'].str.get_dummies(sep=',').add_prefix('genres_')这个方法会自动识别所有出现过的类别,生成
genres_Comedy、genres_Drama这类列,每行对应类别位置填1,非对应类别填0。合并回原数据集:
# 将新生成的列与原数据横向合并 df = pd.concat([df, genre_onehot], axis=1)
补充说明
- 若
genres列存在空值,可先填充空字符串避免报错:df['genres'] = df['genres'].fillna('') - 如果类别分隔符是
,(逗号加空格),也可以直接在get_dummies中指定sep=', ',跳过第一步的替换操作。
内容的提问来源于stack exchange,提问作者Marcus
相关产品推荐
相关产品推荐

