我正在阅读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
另外,它们是十进制还是二进制?
答案 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
列,告诉您a
在a
中的位置。
答案 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作为另一个例子。