繁体   English   中英

从字符串列表的列中删除字符串列表

[英]remove a list of string from a column of list of strings

很难描述这个问题,但现在我有一个带有标记字符串的 dataframe,我想从中删除最常见的单词。 所以我得到了最常用单词的列表并得到了尾巴。 但我不知道如何使用此列表从主列中删除单词:

专栏是这样的:

df['标记化']

 {'dog', 'cat', 'fish'} {'car', 'dog', 'water'} {'blue', 'red', 'green'}

每行都是一个字符串列表

如果我要删除的单词列表是 {'dog', 'cat'}

所需的 output 是:

df['标记化']

{'鱼'}

{'汽车','水'}

{'蓝色','红色','绿色'}

有什么帮助吗?

你可以这样做:

tokenized=[['dog', 'cat' , 'fish'], ['car', 'dog', 'water'], ['blue', 'red', 'green']]
most_common_words = ['cat','dog']
for l in tokenized:
    for w in most_common_words:
        try:
            l.remove(w)
        except ValueError: pass
print(tokenized)

# output:
# [['fish'], ['car', 'water'], ['blue', 'red', 'green']]

试试这个:

mcw = {'dog', 'cat'}
df['tokenized'] = df['tokenized'].apply(
    lambda lst: [word for word in lst if word not in mcw]
)

您应该为最常见的单词使用集合,而不是列表(因为检查元素是否属于集合要快得多)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM