Skip to main content
 首页 » 编程设计

python之我需要根据列上的值从 Pandas 数据框中制作真值表

2025年05月04日14落叶

我有一个这样的数据框:

  name vals 
0  foo    X 
1  foo    Y 
2  foo    Z 
3  bar    Y 
4  bar    Z 
5  bar    Q 

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

      Q  X  Y  Z 
name             
foo   0  1  1  1 
bar   1  0  1  1 

第一个 df 的代码:

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

请您参考如下方法:

国际联合会

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