pandas - 数据框应用集未删除重复值
问题描述
我的数据集有时可以在一个连接列中包含重复项,如下所示:
Total
0 Thriller,Satire,Thriller
1 Horror,Thriller,Horror
2 Mystery,Horror,Mystery
3 Adventure,Horror,Horror
什么时候做这个
df['Total'].str.split(",").apply(set)
我明白了
Total
0 {Thriller,Satire}
1 {Horror,Thriller}
2 {Mystery,Horror,Crime}
3 {Adventure,Horror}
并在编码后
df['Total'].str.get_dummies(sep=",")
我得到一个看起来像这样的标题
{'Horror {'Mystery {'Thriller ... Horror Thriller'}
代替
Horror Mystery Thriller
使用 Pandas 数据框时如何去掉大括号?
解决方案
方法Series.str.get_dummies
也适用于重复项。
所以省略唯一值的代码:
df['Total'] = df['Total'].str.split(",").apply(set)
并且仅使用:
df1 = df['Total'].str.get_dummies(sep=",")
print (df1)
Adventure Horror Mystery Satire Thriller
0 0 0 0 1 1
1 0 1 0 0 1
2 0 1 1 0 0
3 1 1 0 0 0
但是,如果需要删除重复项,请添加Series.str.join
:
df1 = df['Total'].str.split(",").apply(set).str.join(',').str.get_dummies(sep=",")