我想创建一个新列,其中包含下面“名称”列中给出的名称的标题(例如:先生,小姐,上尉等)。
train_df['Name'].head()
0 Braund, Mr. Owen Harris
1 Cumings, Mrs. John Bradley (Florence Briggs Th...
2 Heikkinen, Miss. Laina
3 Futrelle, Mrs. Jacques Heath (Lily May Peel)
4 Allen, Mr. William Henry
Name: Name, dtype: object
您还可以使用'pandas.Series.str.extract'
来解释上述任务吗?谢谢。
答案 0 :(得分:0)
您可以使用str.extract
:
df['Titles'] = df['Name'].str.extract(r', (\w+\.)')
返回:
Name Titles
0 Braund, Mr. Owen Harris Mr.
1 Cumings, Mrs. John Bradley (Florence Briggs) Mrs.
2 Heikkinen, Miss. Laina Miss.
3 Futrelle, Mrs. Jacques Heath (Lily May Peel) Mrs.
4 Allen, Mr. William Henry Mr.
您可以看到运行中的正则表达式here。