Skip to main content
 首页 » 编程设计

python之从 pandas 列中删除重复的单词

2025年05月04日14insus

我有一个数据框,其中的信息存储在一列中

>>> Results.Category[:5] 
0    issue delivery wrong master account 
1      data wrong master account batch 
2    order delivery wrong data account 
3    issue delivery wrong master account 
4    delivery wrong master account batch 
Name: Category, dtype: object 

现在我想在类别列中保留唯一的词 例如 : 在第一行中出现“错误”一词我想将其从所有其余行中删除并仅在第一行中保留“错误”一词 在第二行中,单词“data”可用,然后我想将其从所有其余行中删除,并仅在第二行中保留单词“data”

我发现如果行中有重复项,我们可以使用 below 删除,但我需要从列中删除重复的单词,谁能帮帮我。

AFResults['FinalCategoryN'] = AFResults['FinalCategory'].apply(lambda x: remove_dup(x)) 

请您参考如下方法:

看来你想要这样的东西,

out = [] 
seen = set() 
for c in df['Category']: 
    words = c.split() 
    out.append(' '.join([w for w in words if w not in seen])) 
    seen.update(words) 
 
df['FinalCategoryN'] = out 
df 
 
                              Category                       FinalCategoryN 
0  issue delivery wrong master account  issue delivery wrong master account 
1      data wrong master account batch                           data batch 
2    order delivery wrong data account                                order 
3  issue delivery wrong master account                                      
4  delivery wrong master account batch                                      

如果你不关心顺序,你可以使用集合逻辑:

u = df['Category'].apply(str.split) 
v = split.shift().map(lambda x: [] if x != x else x).cumsum().map(set) 
(u.map(set) - v).str.join(' ') 
 
0    account delivery issue master wrong 
1                             batch data 
2                                  order 
3                                        
4                                        
Name: Category, dtype: object