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