我有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:linkget_dummies
生成一个热编码矩阵:link
关于python - 将整个字符串转换为虚拟变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59788713/