Денормализация столбца в булеву матрицу в Pandas?

#python #pandas #transformation #denormalization

#python #pandas #преобразование #денормализация

Вопрос:

Я пытаюсь взять столбец значений, таких как:

 name  tag
   a    1
   a    2
   b    2
   c    1
   b    3
  

и приписать булеву матрицу с новыми столбцами, «tag_ (val)», например:

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

Как это можно сделать в Pandas?

Ответ №1:

Вы могли бы добавить столбец, заполненный 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