我有一列Name
字符串数据类型。我想获取除最后一个值以外的所有值,并将其放在新列中FName
,这可以实现
df = pd.DataFrame({'Name': ['John A Sether', 'Robert D Junior', 'Jonny S Rab'],
'Age':[32, 34, 36]})
df['FName'] = df['Name'].str.split(' ').str[0:-1]
Name Age FName
0 John A Sether 32 [John, A]
1 Robert D Junior 34 [Robert, D]
2 Jonny S Rab 36 [Jonny, S]
但是新列FName
看起来像一个列表,我不需要。我希望它是这样的:John A
。
我尝试将列表转换为字符串,但似乎不正确。有什么建议吗?
您可以使用.str.rsplit
:
df['FName'] = df['Name'].str.rsplit(n=1).str[0]
或者您可以使用.str.extract
:
df['FName'] = df['Name'].str.extract(r'(\S+\s?\S*)', expand=False)
或者,您可以.str.join
在.str.split
以下链接:
df['FName'] = df['Name'].str.split().str[:-1].str.join(' ')
Name Age FName
0 John A Sether 32 John A
1 Robert D Junior 34 Robert D
2 Jonny S Rab 36 Jonny S
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句