擅长:python、mysql、java
<p><a href="https://stackoverflow.com/a/45557132/21945">Psidom's answer</a>更为优雅,但解决此问题的另一种方法是修改regex模式以使用否定的先行断言,然后使用<code>match()</code>而不是<code>contains()</code>:</p>
<pre><code>pat = r'\b.[YF]\w+[LFI]\b'
not_pat = r'(?!{})'.format(pat)
>>> new_df[new_df.Sequence.str.match(pat)]
Sequence Rating
0 HYHIVQKF 1
2 TYGGSWKF 3
4 YYNTAVKL 5
>>> new_df[new_df.Sequence.str.match(not_pat)]
Sequence Rating
1 YGEIFEKF 2
3 YLESFYKF 4
5 WPDVIHSF 6
</code></pre>