热编码 w.r.t 以引用(列的最后一个按字典顺序排序的元素)

Hot Encoding w.r.t to reference (last lexicographically sorted element of the column)

我的专栏看起来像这样:

df = pd.DataFrame({
          'A':['a','b','a','c','b','d','a']
        })
   A
0  a
1  b
2  a
3  c
4  b
5  d
6  a

我需要按字典顺序对列进行排序,然后开始热编码过程,但我必须将该列的最后一个值作为参考(应映射到全零向量)并​​将它们替换为“A”列。

喜欢:

a = [1 0 0] 
b = [0 1 0]
c = [0 0 1]
d = [0 0 0]

最终结果应该是这样的

   A
0  [1 0 0] 
1  [0 1 0]
2  [1 0 0] 
3  [0 0 1]
4  [0 1 0]
5  [0 0 0]
6  [1 0 0] 

试试 get_dummies

df['A'] = df.A.str.get_dummies().drop('d', axis=1).to_numpy().tolist()
df
Out[237]: 
           A
0  [1, 0, 0]
1  [0, 1, 0]
2  [1, 0, 0]
3  [0, 0, 1]
4  [0, 1, 0]
5  [0, 0, 0]
6  [1, 0, 0]