我的列看起来像这样:
df = pd.DataFrame({ 'A':['a','b','a','c','b','d','a'] })
A0 a1 b2 a3 c4 b5 d6 a
我需要按字典顺序对列进行排序,然后开始热编码过程,但我必须将该列的最后一个值作为参考(应映射到全零向量),并在“A”列中替换它们。
例如:
a = [1 0 0] b = [0 1 0]c = [0 0 1]d = [0 0 0]
最终结果应如下所示
A0 [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()dfOut[237]: A0 [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]