Python 如何从特定值与正则表达式匹配的数据框中筛选行

Python 如何从特定值与正则表达式匹配的数据框中筛选行,python,regex,pandas,dataframe,Python,Regex,Pandas,Dataframe,我有一个这样的数据框 Name Age 0 Mr A 28 1 Mrs B 32 2 Mrs C 30 3 Mr D 34 4 Miss E 23 5 Mr F 37 我想筛选包含“Mr”作为名称标题的行,并创建一个新的数据框,如下所示 Name Age 0 Mr A 28 1 Mr D 34 2 Mr F 37 我已经使用loop尝试了以

我有一个这样的数据框

    Name      Age
0   Mr A      28
1   Mrs B     32
2   Mrs C     30
3   Mr D      34
4   Miss E    23
5   Mr F      37
我想筛选包含“Mr”作为名称标题的行,并创建一个新的数据框,如下所示

    Name      Age
0   Mr A      28
1   Mr D      34
2   Mr F      37
我已经使用loop尝试了以下方法

import re
rows = []
for i, row in df.iterrows():
if re.search('Mr\s',row['Name']):
    rows.append(row)

new_df = pd.DataFrame(rows)

虽然它工作得很好,但是有没有什么有效的方法不用循环就能做到这一点呢?

使用
str.contains
和单词边界
\b

df = pd.DataFrame({"Name":["Mr A","Mrs B","Mrs C","Mr D"]})

print (df[df["Name"].str.contains(r"\bMr\b")])


   Name
0  Mr A
3  Mr D
您可以尝试:

df.loc[df['Name'].str.contains(r'Mr ')]                                                                                                                                             

   Name  Age
0  Mr A   28
3  Mr D   34
5  Mr F   37