one-hot编码器实现pandas.get_dummies,如何读取语法

时间:2017-08-29 21:46:36

标签: python pandas data-processing one-hot-encoding

我正在阅读pandas文档以了解pandas.get_dummies

>>> import pandas as pd
>>> l = list('abca')
>>> print l
['a', 'b', 'c', 'a']
>>> s = pd.Series(l)
>>> print s
0    a
1    b
2    c
3    a

我创建了一个如上所示的系列。

当我在这个系列中调用get_dummies时,输出如下

>>> pd.get_dummies(s)
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0

这是什么意思我无法理解。

我们可以说条目的新值如下吗?

a --> 100
b --> 010
c --> 001
a --> 100

另外,它们是十进制还是二进制?

2 个答案:

答案 0 :(得分:3)

dummy变量是二进制的功能。就像一个列,说明每一行是否是某些东西。当我们有一个具有多个值的现有列时,超过1.我们可以将这些值拆分为每个唯一值的单个列。每个新列都是表示该行具有该唯一值的列,或者表示该行没有该唯一值的零。

由于s的每一行只有一个值,因此每个0和1行只会在列标题下只有一个,这是{{1}中相应行的值}}

s

换句话说,请考虑新的 a b c 0 1 0 0 # 1 is under `a` which was the value in `s` for this row. 1 0 1 0 2 0 0 1 3 1 0 0 列,告诉您aa中的位置。

答案 1 :(得分:2)

这是一种热门编码。

   a  b  c
0  1  0  0  <-- a, not b, not c in row 0
1  0  1  0  <-- not a, b, not c in row 1 
2  0  0  1  <-- not a, not b, c in row 2
3  1  0  0  <-- a, not b, not c in row 3

考虑阅读this作为另一个例子。