热编码 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]
我的专栏看起来像这样:
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]