多列的二进制编码

时间:2018-09-01 03:53:14

标签: python pandas numpy

我有一个Pandas表,其编码如下:

id var1 var2 var3
1   1    3    4
2   2    5
3   1    2 

希望将其转换为这样的二进制文件

id x1 x2 x3 x4 x5
1  1  0  1  1  0
2  0  1  0  0  1
3  1  1  0  0  0

因此可以有效地映射每个变量的位置。

1 个答案:

答案 0 :(得分:2)

使用get_dummies

In [506]: (pd.get_dummies(df.filter(like='var').stack())
             .sum(level=0).rename(columns='x{:.0f}'.format))
Out[506]:
   x1  x2  x3  x4  x5
0   1   0   1   1   0
1   0   1   0   0   1
2   1   1   0   0   0