为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查Python中的列表中是否存在DataFrame字符串列的第一个单词?

如何检查Python中的列表中是否存在DataFrame字符串列的第一个单词?

手掌心 2021-04-09 13:15:55
我有一个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


查看完整回答
反对 回复 2021-04-27
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

.str.split(" ")[0].contains('|'.join(question_words)).astype(int)

应该做的工作


查看完整回答
反对 回复 2021-04-27
  • 2 回答
  • 0 关注
  • 367 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信