Python 将列反规范化为Pandas中的布尔矩阵?

Python 将列反规范化为Pandas中的布尔矩阵?,python,pandas,transformation,denormalization,Python,Pandas,Transformation,Denormalization,我尝试获取一列值,例如: name tag a 1 a 2 b 2 c 1 b 3 并将布尔矩阵赋予新列“tag_uVal(val)”,例如: name tag_1 tag_2 tag_3 a T T F b F T T c T F F 如何在Pandas中实现这一点?您可以添加一列True,然后透视: >>&g

我尝试获取一列值,例如:

name  tag
   a    1
   a    2
   b    2
   c    1
   b    3
并将布尔矩阵赋予新列“tag_uVal(val)”,例如:

name  tag_1  tag_2  tag_3
   a    T       T      F
   b    F       T      T
   c    T       F      F

如何在Pandas中实现这一点?

您可以添加一列
True
,然后透视:

>>> df["val"] = True
>>> piv = df.pivot("name", "tag", "val").fillna(False)
>>> piv
tag       1      2      3
name                     
a      True   True  False
b     False   True   True
c      True  False  False
或者如果你非常挑剔:

>>> piv.columns = ["tag_{}".format(x) for x in piv.columns]
>>> piv = piv.reset_index()
>>> piv
  name  tag_1  tag_2  tag_3
0    a   True   True  False
1    b  False   True   True
2    c   True  False  False