Python 获取数据帧中的字符串而不是列表

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

我有一个字符串数据类型的列名。我想得到除最后一个之外的所有值,并将其放入一个新的列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看起来像一个列表,我不想要它。我希望它像:约翰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