我正在寻找一种Python式的方法来处理以下问题。
The pandas.get_dummies()
方法非常适合从数据帧的分类列创建虚拟对象。例如,如果该列的值位于['A', 'B']
, get_dummies()
创建 2 个虚拟变量并相应地分配 0 或 1。
现在,我需要处理这种情况。单个列,我们称之为“标签”,具有如下值['A', 'B', 'C', 'D', 'A*C', 'C*D']
. get_dummies()
创建 6 个虚拟值,但我只想要其中 4 个,这样一行就可以有多个 1。
有没有办法以Python方式处理这个问题?我只能想到一些逐步的算法来获取它,但这不包括 get_dummies()。
谢谢
已编辑,希望更清楚!
我知道自从提出这个问题以来已经有一段时间了,但是(至少now有)一个由以下支持的单线文档 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.get_dummies.html:
In [4]: df
Out[4]:
label
0 (a, c, e)
1 (a, d)
2 (b,)
3 (d, e)
In [5]: df['label'].str.join(sep='*').str.get_dummies(sep='*')
Out[5]:
a b c d e
0 1 0 1 0 1
1 1 0 0 1 0
2 0 1 0 0 0
3 0 0 0 1 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)