如何根据相应行中字符串中的重复单词在数据框中创建新属性?

How to create a new attribute in a dataframe based on duplicate words in a string, in corresponding row?

我的数据框有 Google 个播放应用程序名称,每行有一个名称。我想在应用程序名称前创建一个新列,如果名称字符串中有重复的单词,新列将有 1,否则为 0。

例如,如果应用名称是“免费电话:拨打国际电话”,那么“电话”将是重复的。

其次,一个新列具有基于名称字符串的重复单词数。

以下是代码,我不知道如何在应用程序名称前面创建一列。

count = 0
duplicate = False
for name in df['App Name']:
name.lower()
nameWords = []
traversedWords = []   
    nameWords = name.split()
    for word in nameWords:
        if word in traversedWords:
            count += 1
        elif word not in traversedWords:
            traversedWords.append(word)

if count > 0:
    duplicate = True

使用此代码:

df['is_duplicate'] = [sorted(set(x.split())) != sorted(x.split()) for x in df['App Name']]

让我们分解一下:

[... for x in df['App Name']]

迭代应用程序名称列

sorted(set(x.split())) != sorted(x.split())

检查是否有任何拆分词的计数大于一。这是通过检查拆分句子的排序集(一组删除重复项)是否与拆分句子本身相同来完成的。如果是,则不是重复词句,如果不是,则说明set构造函数去掉了一些重复项,句子中出现了重复词。