我有30多个功能,但我需要将2个功能转换为虚拟变量。这两个功能是获胜者和失败者的名字。您可以在照片下方看到这些功能。我想看到在每行相同位置将名称转换为虚拟类型的名称。

我不明白如何使用该方法转换为虚拟变量。有人可以给我个主意吗?先感谢您。 You can find the picture here with the features so you can understand what I want

最佳答案

@ Alex97:

方法pd.get_dummies应该可以回答您的问题。



df # your DataFrame as shown on your picture

# generate dummies
dum_winners = pd.get_dummies(df.Winner, prefix="win", prefix_sep=" ")
dum_losers = pd.get_dummies(df.Loser, prefix="los", prefix_sep=" ")

# update df with dummies
df = pd.concat([df, dum_winners, dum_losers], axis=1)\
    .drop(columns=["Winner", "Loser"])


上面的解决方案作为输入:

   Other Features    Winner     Loser
0               2   John D.  Jason S.
1               4  Jason S.   Eric N.


并返回:

   Other Features  win Jason S.  win John D.  los Eric N.  los Jason S.
0               2             0            1            0             1
1               4             1            0            1             0


细节

这里是文档链接:


concat合并DataFrames:link
get_dummies生成
一个热编码矩阵:link

关于python - 将整个字符串转换为虚拟变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59788713/

10-12 23:52