【问题标题】:Converting a string to dummy encoded variables将字符串转换为虚拟编码变量
【发布时间】:2017-08-23 04:42:57
【问题描述】:

这是数据

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+ n 个字符的 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

【问题讨论】:

    标签: python r dummy-variable


    【解决方案1】:

    我不知道这是否是最好的方法,但我建议首先使用以下代码将这 8 个字符串分成 8 列:

    df['Characters'].str[1:-1].str.split(',', expand=True).astype(str)
    

    然后对这 8 列中的每一列使用以下代码来创建虚拟对象:

    pd.get_dummies(df['your columns'])
    

    可能会为唯一字符创建重复的列,但您可以轻松地将它们合并在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多