我想把一个 Dataframe 转换成一个特征矩阵(实际上,我不确定它是否被称为特征矩阵)。
第一个
我想创建一个矩阵,以汽车和颜色作为索引和列,其中True
或1表示可能的组合,如下所示:
Color Audit Chrysler Toyota
0 blue 0 1 0
1 red 1 0 1
2 silver 0 1 1
我可以创建一个矩阵,然后遍历行并输入值,但这需要相当长的时间。有没有更好的方法来创建这个矩阵?
谨致问候,史蒂芬
2条答案
按热度按时间j9per5c41#
pivot_table
似乎适用于以下情况:其给出:
您可以将垂直组件指定为索引列(Car),将水平组件指定为列组件(Color),然后提供一个函数来填充单元格(len)。
然后,为了使它更细微一些,您可以使用fillna()将空单元格“涂”上零,并应用逻辑测试来显示哪些是“可能的”。
例如:
其给出:
作为最后一点润色,在从here中学习了它之后,您可以运行
applymap
来获得0,1输出:赠送:
最后,这个过程有时在文献中被称为One Hot Encoding,并且有一些很酷的实现,如this one from sklearn,如果您的研究将您引向这个方向的话。
eivgtgni2#
下面的代码将对托马斯的答案进行扩展,它将在输出中给予您所希望的内容