我试图使用新值将多选调查响应重新分类为二进制列,但导致该问题的原因是唯一其他列的数量。
我在试着改变
Row # Column #
0 Fun
1 Fun, Easy
2 Easy, Other [confusing]
3 Fun, Other [difficult to use]
4 Fun, Easy, Other [annoying]转到
Fun Easy Other
0 1 0 0
1 1 1 0
2 0 1 1
3 1 0 1
4 1 1 1我一直在使用下面的代码来分离成多个虚拟对象,但我正在寻找一种解决方案,将所有的“其他值”合并为一个“其他值”。
df.iloc[:, 0].str.get_dummies(',')但这就产生了
Fun Easy Other [confusing] Other [difficult to use] ....
0 1 0 0 0
1 1 1 0 0
2 0 1 1 0
3 1 0 0 1
4 1 1 0 1对于多个稀疏的其他响应,它很快就变得笨拙起来。
发布于 2020-11-13 02:28:59
您可以将所有Other [...]替换为Other,然后再替换str.get_dummies
(df['Column #'].str.replace('Other \[.*\]', 'Other')
.str.get_dummies(', ')
)输出:
Easy Fun Other
0 0 1 0
1 1 1 0
2 1 0 1
3 0 1 1
4 1 1 1https://stackoverflow.com/questions/64809646
复制相似问题