从字符串中删除第二个单词

2024-09-30 20:34:48 发布

您现在位置:Python中文网/ 问答频道 /正文

今天我在写一系列的名字。我需要删除每行的第二个名字。我的数据帧如下所示:

      Name
John Charles Bloom
Michael Jackson
Peter Rodrigo Aguilera Wayne

我想要的结果是:

      Name
John Bloom
Michael 
Peter Aguilera Wayne

所以我试过这样的方法:

df['Name2']=df.Name.str.replace('\b\w*\b(\b\w*\b)\b\w*\b','')

但没用。我不是正则表达式专家,但应该没那么难吧?你知道吗

感谢您的帮助


Tags: 数据方法namedf名字johnpeterbloom
3条回答

试试这个:

string1 = 'John Charles Bloom'
l = string1.split()
(' ').join([l[x] for x in [0].extend(list(range(2,len(l))))])
one = [0]
one.extend(list(range(2,len(l))))
(' ').join([l[x] for x in one])

此代码将解决您的问题:

df['Name2'] = df.Name.str.replace('^(\w+)\s+(\w+)(|.+|)', r'\1\g<3>')

尝试

df.Name.str.replace(r'^(\s*(?:\S+\s+){1})\S+',r'\1')

相关问题 更多 >