如何解决在我的数据库中,我得到了一个属性,它有很多用逗号分隔的不同值 E.G:属性“sintomas” - 值“Outros,tosse”
我的大学有一个项目,我们必须使用一个数据库在其上进行一些数据分析。 我的问题是数据库有一个属性,里面有很多不同的数据,用逗号分隔。
我必须对其进行 KNN 算法,并将所有定性值更改为数字,但我不知道在下面显示的情况下该怎么做。我正在考虑获取所有子字符串并添加为属性,例如,在第 0 行我得到“Outros,Tosse”,所以我会有一个属性“Outros”和另一个“Tosse”,如果存在子字符串,该值将是“1”,如果不是,则该值将是“0”。我现在正在将 colab 与熊猫一起使用。有人知道在这种情况下我能做什么吗?
数据样本:
sintomas profissionalsaude
0 Outros,Tosse 2
1 Febre,Tosse,Distúrbios Gustativos 1
。 . .
谢谢!
解决方法
你可以这样做:
pd.get_dummies(
df['sintomas'].str.split(',').explode()
).groupby(level=0).sum()
思路是先将split
个字符串通过,
,然后explode
放到一个有重复索引的列中(索引代表原始索引=行号),然后{{1 }} 做 one-hot 编码,get_dummies
那个索引和 groupby
例如:
sum
输出:
df = pd.DataFrame({'feature': ['a,b,c','b,'a']})
pd.get_dummies(
df['feature'].str.split(',\s*').explode()
).groupby(level=0).sum()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。