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

返回没有超过特定最大长度的单词的带有字符串内容的行,同时保留和过滤掉带有特定内容的单词

返回没有超过特定最大长度的单词的带有字符串内容的行,同时保留和过滤掉带有特定内容的单词

慕侠2389804 2023-03-08 16:22:43
这是我的数据框输入        qid                     question_stemmed    target  question_length total_words443216  56da6b6875d686b48fde    mathfracint1x53x5 tantanboxedint1x01x2 sumvarp...   1   589 40163583  1ffca149bd0a19cd714c    mathoverbracesumvartheta8infty vecfracsumkappa...   1   498 31522266  663c7523d48f5ee66a3e    httpgooglecom check out the content of the www..    0   449 66522379  756678d3d48f5ee66a3e    mark had a great day he plans to go fishing with.   0   310 23我正在使用以下逻辑仅从其 question_text 列具有的 df 返回记录任何长度不应超过 15 个字符的单词(注意:不是字符串长度)(使用否定)在上述条件为真时不应包含数值的任何单词(使用否定)同时确保保留具有 http 或 www 值的词(同时以上 2 个条件仍然成立)df = df[(~df['question_stemmed'].str.len() > 15) & (~df['question_stemmed'].str.contains(r'[0-9]')) & (df.question_stemmed.str.match('^[^\http]*$'))]出现错误 error: bad escape \h at position 3预期产出        qid                     question_stemmed     target    question_length  total_words522266  663c7523d48f5ee66a3e    httpgooglecom check out the content of the www..    0   449 66522379  756678d3d48f5ee66a3e    mark had a great day he plans to go fishing with.   0   310 23    另外,想知道上面的逻辑是否可以满足所有 3 个条件感谢任何帮助
查看完整描述

1 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

我建议使用

df = df[~df['question_stemmed'].str.contains(r'(?<!\S)(?!\S*(?:http|www\.))\S{15}')]

请参阅正则表达式演示

细节

  • (?<!\S)- 空格或字符串开头应紧接在当前位置之前

  • (?!\S*(?:http|www\.))-不允许在当前位置的右侧紧跟 0 个或多个非空白字符后跟http或子字符串www.

  • \S{15}- 十五个非空白字符。


查看完整回答
反对 回复 2023-03-08
  • 1 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

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