Python 获取数据帧中的字符串而不是列表
我有一个字符串数据类型的列名。我想得到除最后一个之外的所有值,并将其放入一个新的列FName中,这是我可以实现的Python 获取数据帧中的字符串而不是列表,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个字符串数据类型的列名。我想得到除最后一个之外的所有值,并将其放入一个新的列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] Na
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看起来像一个列表,我不想要它。我希望它像:约翰A
我尝试将列表转换为字符串,但似乎不正确。
有什么建议吗?您可以使用.str.rsplit:
也可以使用.str.extract:
或者,您可以在.str.split之后链接.str.join:
您可以使用.str.rsplit:
也可以使用.str.extract:
或者,您可以在.str.split之后链接.str.join:
df['FName'] = df['Name'].str.rsplit(n=1).str[0]
df['FName'] = df['Name'].str.extract(r'(\S+\s?\S*)', expand=False)
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