我有一个带有句子行的数据框。现在我想从数据框中删除所有包含>= x (e.g. 2 or 3)
字典/列表单词数量的句子,这些句子可能如下所示:dict = {"ice", "water", "rain"}
因此,例如,如果 x=2 我想删除这个句子,ice and water are similar to each other
因为它有两个字典中的单词,而不是ice melts away when it's warm
因为它字典中的单词少于两个。
我知道从我可以做的字典中删除包含任何单词的句子:
df[~df.Sentences.str.contains('|'.join(dict))]
所以总而言之,我正在寻找一种方法来从 Dataframe 中删除句子,其中至少包含来自字典/列表的 x 数量的值。
您可以将以下内容用于您的用例:
dict_test = {"ice", "water", "rain"}
df = pd.DataFrame({
'sentences':["ice and water are similar to each other",
"ice melts away when it's"]
})
threshold = 2
df_grouper = pd.Series(0, index=df.index)
for word in dict_test:
df_i = df['sentences'].str.count(word)
df_grouper += df_i
result = df[df_grouper<threshold]
result
基本上,我们计算每个单词的出现次数并将它们汇总到 df_grouper 中。最后,我们只保留满足我们条件的行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句