![](/img/trans.png)
[英]Extracting Sub-string Between Two Characters in String in Pandas Dataframe
[英]Extract sub-string between 2 special characters from one column of Pandas DataFrame
我有一个像这样的 Python Pandas DataFrame:
Name
Jim, Mr. Jones
Sara, Miss. Baker
Leila, Mrs. Jacob
Ramu, Master. Kuttan
我只想从 Name 列中提取 name title 并将其复制到名为 Title 的新列中。 输出数据帧如下所示:
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
看看str.extract 。
您正在寻找的正则表达式是(?<=, )\\w+(?=.)
。 在词中:取前面有,
(但不包括)的子串,由至少一个单词字符组成,并以.
结尾.
(但不包括)。 以后,请使用在线正则表达式测试器,例如regex101 ; 正则表达式变得相当微不足道。
这是假设Name
列中的每个条目的格式相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.