使用正则表达式模式从熊猫数据框中过滤行

nob*_*ice 2 regex python-3.x pandas

假设我有一个像这样的熊猫数据框:

         Word      Ratings
   0     TLYSFFPK  1
   1     SVLENFVGR 2
   2     SVFNHAIRK 3
   3     KAGEVFIHK 4
Run Code Online (Sandbox Code Playgroud)

如何在 Pandas 中使用正则表达式过滤掉具有与以下正则表达式模式匹配但保留数据帧格式的单词的行?正则表达式模式为:\b.[VIFY][MLFYIA]\w+[LIYVF].[KR]\b

预期输出:

         Word    Ratings
   1     SVLENFVGR 2
   2     SVFNHAIRK 3
Run Code Online (Sandbox Code Playgroud)

Max*_*axU 5

演示:

In [2]: df
Out[2]:
        Word  Ratings
0   TLYSFFPK        1
1  SVLENFVGR        2
2  SVFNHAIRH        3
3  KAGEVFIHK        4

In [3]: pat = r'\b.[VIFY][MLFYIA]\w+[LIYVF].[KR]\b'

In [4]: df.Word.str.contains(pat)
Out[4]:
0    False
1     True
2    False
3    False
Name: Word, dtype: bool

In [5]: df[df.Word.str.contains(pat)]
Out[5]:
        Word  Ratings
1  SVLENFVGR        2
Run Code Online (Sandbox Code Playgroud)

  • 你总是为我节省时间:) (2认同)