首页 > 解决方案 > 数据框应用集未删除重复值

问题描述

我的数据集有时可以在一个连接列中包含重复项,如下所示:

                  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 数据框时如何去掉大括号?

标签: pandasdataframe

解决方案


方法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=",")

推荐阅读