這是我的數(shù)據(jù)框輸入 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 返回記錄任何長度不應(yīng)超過 15 個字符的單詞(注意:不是字符串長度)(使用否定)在上述條件為真時不應(yīng)包含數(shù)值的任何單詞(使用否定)同時確保保留具有 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]*$'))]出現(xiàn)錯誤 error: bad escape \h at position 3預(yù)期產(chǎn)出 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貢獻(xiàn)1845條經(jīng)驗 獲得超8個贊
我建議使用
df = df[~df['question_stemmed'].str.contains(r'(?<!\S)(?!\S*(?:http|www\.))\S{15}')]
請參閱正則表達(dá)式演示
細(xì)節(jié)
(?<!\S)
- 空格或字符串開頭應(yīng)緊接在當(dāng)前位置之前(?!\S*(?:http|www\.))
-不允許在當(dāng)前位置的右側(cè)緊跟 0 個或多個非空白字符后跟http
或子字符串www.
\S{15}
- 十五個非空白字符。
添加回答
舉報
0/150
提交
取消