这是输入数据框
df_data = pd.DataFrame({'A':[2,1,3], 'content': ['the dog is sleeping', 'my name is Dude', 'i am who i am']})
和字表
words_list= ['dog', 'Dude','sleeping', 'i']
现在,我知道如何创建一个带有指示的新列,如果我有我想要的单词,像这样的-
df_data['new'] = df_data.apply(lambda row: True if any([item in row['content'] for item in words_list]) else False, axis = 1)
关键是我还想数一数这些词。。。 例如,在第2行和第3行中,我的列表中有两个单词,所以我希望有一个值为2的新列,以此类推
谢谢大家!
试试这个,pandas.Series.str.findall来提取匹配项
首先,我认为您需要修改初始函数,因为它可能会提供不正确的输出
例如:
导致
我想,第一行没有“做”这个词。 可以通过将行内容拆分为列表来修复:
使用布尔数组上的sum函数可以简单地设置计数:
输出:
相关问题 更多 >
编程相关推荐