我是正则表达式的新手,我正在试图弄清楚如何在数据框中生成一个新列,捕获名称和姓氏的第一个首字母.
例如df:
Name NormName
john smith j smith
s r peterson s peterson
sandra oh s oh
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止尝试的代码,但似乎无法让它工作.我不知道如何只更换中间部分.
namereg = re.compile('(^[a-z])(.*)(\s[a-z]*$)')
names['NormName'] = names.Name.apply(lambda tmp: namereg.sub('',tmp))
Run Code Online (Sandbox Code Playgroud)
我想你甚至不需要使用正则表达式:
names['NormName'] = names.Name.apply(lambda tmp: tmp[0]+" "+tmp.rpartition(" ")[2])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |