在 python pandas 中创建交叉表,显示存在哪些值

bax*_*axx 2 python data-manipulation crosstab pandas

鉴于以下数据:

pd.DataFrame(dict(
    name = ['a', 'a', 'a', 'b', 'b', 'b'],
    vals = [1, 2 , 3, 99, 3, 4]
))
Run Code Online (Sandbox Code Playgroud)

看起来像:

  name  vals
0    a     1
1    a     2
2    a     3
3    b    99
4    b     3
5    b     4
Run Code Online (Sandbox Code Playgroud)

我想知道如何创建以下内容:

     1     2    3      4     99
a  true  true  true  false  false
b  false false true  false  true
Run Code Online (Sandbox Code Playgroud)

注意 -上面的true和的确切值false并不那么重要,我目前不知道如何创建这种类型的表。

WeN*_*Ben 6

尝试这个 crosstab

s=pd.crosstab(df.name,df.vals).astype(bool)
Out[38]: 
vals     1      2     3      4      99
name                                  
a      True   True  True  False  False
b     False  False  True   True   True
Run Code Online (Sandbox Code Playgroud)