Python 如何将虚拟变量从1更改为值?

Python 如何将虚拟变量从1更改为值?,python,pandas,Python,Pandas,我有一个数据帧df,df.head(3)看起来像 number|Player - - - - - - - 10 | Messi 7 | Ronaldo 14 | Henry 想让它看起来像这样 Number|Messi|Ronaldo|Henry -------------------------- 10 |10 |0 |0 7 |0 |7 |0 14 |0 |0 |14 我尝试过使用

我有一个数据帧df,df.head(3)看起来像

  number|Player
  - - - - - - - 
   10   | Messi
   7    | Ronaldo
   14   | Henry
想让它看起来像这样

Number|Messi|Ronaldo|Henry
--------------------------
10    |10   |0      |0
7     |0    |7      |0
14    |0    |0      |14

我尝试过使用map、apply和get_dummies(),但后者的值不是1,而是1。

您可以使用
pivot_table

df=pd.DataFrame({
“数字”:[10,7,14],
“球员”:[“梅西”、“罗纳尔多”、“亨利”]
})
df[“值”]=df.number
df[“number”]=df.number.astype(str)
数据透视表(values=“value”、columns=“player”、index=“number”).fillna(0)

您可以使用
str.get\u假人

df = df.set_index('number')
df_out = (df['Player'].str.get_dummies()*df.index).reset_index()
df_out
输出:

   number  Henry  Messi  Ronaldo
0      10      0      7        0
1       7      0      0       14
2      14     10      0        0

只是为了澄清一下,您实际上是在尝试一个热编码吗?我知道你被标记为机器学习,为什么我要问。是的,试着做一个热编码
result = df[["number"]].join(pd.get_dummies(df["player"]).mul(df["number"], axis=0))