如何使用Python DataFrame将逗号分隔值转为多列二进制值
Python DataFrame实现逗号分隔值转二进制多列
直接用Pandas内置的str.get_dummies()方法就能快速实现需求,步骤如下:
1. 构造示例数据
先模拟符合需求的原始DataFrame:
import pandas as pd df = pd.DataFrame({ 'ID': [1, 2, 3], 'Categories': ['A,B', 'B,C', 'A,C'] })
2. 生成二进制列
调用str.get_dummies()拆分逗号分隔的内容,并自动生成对应唯一值的0/1列:
# 拆分逗号分隔值,生成二进制标识列 category_dummies = df['Categories'].str.get_dummies(sep=',') # 将生成的列与原DataFrame合并 final_df = pd.concat([df, category_dummies], axis=1)
3. 查看结果
运行后得到的final_df就是目标格式:
ID Categories A B C 0 1 A,B 1 1 0 1 2 B,C 0 1 1 2 3 A,C 1 0 1
处理带空格的情况
如果原始数据中逗号后带有空格(比如'A, B'),先清理格式再生成二进制列:
# 清理逗号后的空格 df['Categories'] = df['Categories'].str.replace(', ', ',') # 再生成二进制列 category_dummies = df['Categories'].str.get_dummies(sep=',')
内容的提问来源于stack exchange,提问作者Smriti Mishra
相关产品推荐
相关产品推荐

