我需要根据列上的值从熊猫数据帧制作真值表

ni8*_*8mr 2 python dataframe pandas

我有一个这样的数据框:

  name vals
0  foo    X
1  foo    Y
2  foo    Z
3  bar    Y
4  bar    Z
5  bar    Q
Run Code Online (Sandbox Code Playgroud)

我怎样才能把它变成这样:

      Q  X  Y  Z
name            
foo   0  1  1  1
bar   1  0  1  1
Run Code Online (Sandbox Code Playgroud)

第一个 df 的代码:

df = pd.DataFrame({"name": ["foo", "foo", "foo",
                              "bar", "bar", "bar"],
                        "vals": ["X", "Y", "Z",
                              "Y", "Z", "Q"],
                        })
Run Code Online (Sandbox Code Playgroud)

WeN*_*Ben 5

国际大学联盟

pd.crosstab(df.name,df.vals)
Out[137]: 
vals  Q  X  Y  Z
name            
bar   1  0  1  1
foo   0  1  1  1
Run Code Online (Sandbox Code Playgroud)

  • 我也喜欢这个答案(-: (2认同)