这是数据
PlayerID, Characters, Win or Lose
我可以看起来像这样
8PYPY0LLQ,valkyrie5 , chr_witch4 , hog_rider5 , zapMachine1 , mega_minion3 , baby_dragon2 , bomber7 , skeleton_horde1, 0
或者像这样
2GRG822L9,"barbarians8, valkyrie5, chr_balloon3, fire_spirits8, minion8, firespirit_hut6, rage4, skeleton_horde3,",1
第二列是70多个字符的8个字符组合。
我需要将变量编码为虚拟变量,因此每个字符都有自己的列。有没有办法在python / R中执行此操作?我假设您必须将第二列保留为字符串,而不是输出看起来像这样的csv文件。
2GRG822L9,barbarians8, valkyrie5, chr_balloon3, fire_spirits8, minion8, firespirit_hut6, rage4, skeleton_horde3,1
8PYPY0LLQ,valkyrie5 , chr_witch4 , hog_rider5 , zapMachine1 , mega_minion3 , baby_dragon2 , bomber7 , skeleton_horde1,0
在虚拟编码之前它应该看起来像这样
2GRG822L9,"barbarians8, valkyrie5, chr_balloon3, fire_spirits8, minion8, firespirit_hut6, rage4, skeleton_horde3,",1
8PYPY0LLQ,"valkyrie5 , chr_witch4 , hog_rider5 , zapMachine1 , mega_minion3 , baby_dragon2 , bomber7 , skeleton_horde1,",0
答案 0 :(得分:0)
我不知道这是否是最好的方法,但我建议先使用以下代码将这8个字符串拆分为8列:
df['Characters'].str[1:-1].str.split(',', expand=True).astype(str)
然后对这8列中的每一列使用以下代码来创建虚拟对象:
pd.get_dummies(df['your columns'])
可能会创建唯一字符的重复列,但您可以轻松地将它们合并在一起。