我希望从pandas dataframe的“Name”列中提取一个子字符串(头衔 - 先生,夫人,小姐等),然后将新列(Title)写回数据框中。
在数据框的“Name”列中,我有一个名字,例如“Brand, Mr. Owen Harris”。两个分隔符是逗号和句点。
我尝试使用split方法,但这只会将原始字符串在列表中分成两部分。因此,我仍然得到了列表中的['Braund','Mr. Owen Harris']。
在数据框的“Name”列中,我有一个名字,例如“Brand, Mr. Owen Harris”。两个分隔符是逗号和句点。
我尝试使用split方法,但这只会将原始字符串在列表中分成两部分。因此,我仍然得到了列表中的['Braund','Mr. Owen Harris']。
import pandas as pd
#import re
df_Train = pd.read_csv('https://docs.google.com/spreadsheets/d/e/2PACX-1vTliZmavBsJCFDiEwxcSIIftu-0gR9p34n8Bq4OUNL4TxwHY-JMS6KhZEbWr1bp91UqHPkliZBBFgwh/pub?gid=1593012114&single=true&output=csv')
a= df_Train['Name'].str.split(',')
for i in a:
print(i[1])
我认为这可能涉及到正则表达式。我的研究表明,使用前向查找 (?=,) 和后向查找 (?<='.') 的方法可以解决问题。例如:
import re
a= df_Train['Name'].str.split(r'(?=,)*(?<='.'))
for i in a:
print(i)
print(i[1])`
但我遇到了错误(扫描字符串文字时的EOL)。有人能给我指点一下方向吗?
谢谢, Mike
.value_counts()
即可,而不是使用.to_frame().groupby('Name')['Name'].count()
。 - maxymoo