1 回答
TA贡献1815条经验 获得超13个赞
如果名字和姓氏中没有空格(否则如何区分它们):
pattern = ('^(?P<Initials>\w+)\s'
+ '(?P<FName>\w+)\s'
+ '(?P<LName>\w+)\s'
+ '(?P<SignupTime>\d+/\d+/\d+ \d+:\d+ \w+)\s'
+ '(?P<Waiver>.*)'
)
df['name'].str.extract(pattern)
输出:
Initials FName LName SignupTime Waiver
0 DA Firstname Lastname 09/30/2020 07:44 AM 9/23/2020 6:06:38 PM
1 JW Firstname Lastname 10/25/2020 11:06 AM None
更新:对于可选的缩写,您可以尝试以下模式:
pattern = ('^(?P<Initials>\w+\s)?' # make initial optional
+ '(?P<FName>\w+)\s+'
+ '(?P<LName>\w+)\s+'
+ '(?P<SignupTime>\d+/\d+/\d+ \d+:\d+ \w+)\s'
+ '(?P<Waiver>.*)'
)
请注意,现在如果Initials存在,将会有一个尾随空格,您可以轻松处理。
添加回答
举报