Select 来自数据框的行,在“-”之后有特定字符

Select rows from dataframe with a certain character after a '-'

我有以下数据框:

import pandas as pd
test = pd.DataFrame({'A': 'A1-C-D-1 A22-C-D-22 A4-S-E-3'.split(),
             'B': [1, 2, 3]})

我想select在第二个'-'之后具有特定字符(例如'E')的行

欢迎任何想法!

选项 1
使用 str.split + str.startswith:

过滤
test[test.A.str.split('-').str[2].str.startswith('E')]

          A  B
2  A4-S-E-3  3

选项 2
您可以在这里发挥创造力并使用 str.extract + pd.Series.notna/notnull

test[test.A.str.extract('.*?-.*?-(E).*', expand=False).notna()]

          A  B
2  A4-S-E-3  3