python - 从 Pandas DataFrame 的一列中提取 2 个特殊字符之间的子字符串

标签 python regex pandas

我有一个像这样的Python Pandas DataFrame:

Name  
Jim, Mr. Jones
Sara, Miss. Baker
Leila, Mrs. Jacob
Ramu, Master. Kuttan 

我想从名称列中仅提取名称标题并将其复制到名为标题的新列中。输出数据帧如下所示:

Name                    Title
Jim, Mr. Jones          Mr
Sara, Miss. Baker       Miss
Leila, Mrs. Jacob       Mrs
Ramu, Master. Kuttan    Master

我正在尝试使用正则表达式找到解决方案,但未能找到正确的结果。

最佳答案

In [157]: df['Title'] = df.Name.str.extract(r',\s*([^\.]*)\s*\.', expand=False)

In [158]: df
Out[158]:
                   Name   Title
0        Jim, Mr. Jones      Mr
1     Sara, Miss. Baker    Miss
2     Leila, Mrs. Jacob     Mrs
3  Ramu, Master. Kuttan  Master

In [163]: df['Title'] = df.Name.str.split(r'\s*,\s*|\s*\.\s*').str[1]

In [164]: df
Out[164]:
                   Name   Title
0        Jim, Mr. Jones      Mr
1     Sara, Miss. Baker    Miss
2     Leila, Mrs. Jacob     Mrs
3  Ramu, Master. Kuttan  Master

关于python - 从 Pandas DataFrame 的一列中提取 2 个特殊字符之间的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44000278/

相关文章:

python - 使用 catch all 捕获 url 不渲染 css

regex - Emacs - Lisp 中的正则表达式需要双重转义 - 为什么?

python - 正则表达式拆分和匹配

python - 如何聚合group by并在出现某个值后丢弃行?

python - 如何使用 Pandas 找到客户满意度?

python - 在python中按列连接两个大文件

python - 调用 check 两次应该工作吗?

python - 从 URL 获取路径并在 python 脚本中使用它

python - 如何测试一个变量是否改变? Python

java - 解析路径以获取所需名称