我有一个DataFramedf_sentences和一个列表question_words,如下所示:df_sentences:sentence labelyou will not forget this movie 0will the novel ever die 1why we drink alcohol 1did trump win the election 1ambiance is perfect 0question_words = ['what', 'why', 'when', 'where', 'whose', 'which', 'whom', 'who', 'how', 'do', 'are', 'will', 'did', 'will', 'am', 'are', 'was', 'were', 'can', 'has', 'have']我想检查列表中是否sentence存在该列的第一个单词,question_words并在新列中返回结果ques_word。预期产量:sentence label ques_wordyou will not forget this movie 0 0will the novel ever die 1 1why we drink alcohol 1 1did trump win the election 1 1the ambiance is perfect 0 0到目前为止,我正在尝试使用什么,.str.contains('|'.join(question_words)).astype(int)但是正如预期的那样,它将返回与question_wordslist匹配的所有子字符串的所有数量。
2 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
如果您想要快速的解决方案,请使用列表理解。
q_set = set(question_words)
df['ques_word'] = [
1 if w.split(None, 1)[0] in q_set else 0 for w in df.sentence
]
df
sentence label ques_word
0 you will not forget this movie 0 0
1 will the novel ever die 1 1
2 why we drink alcohol 1 1
3 did trump win the election 1 1
4 ambiance is perfect 0 0
添加回答
举报
0/150
提交
取消