拆分pandas列并将最后一个元素添加到新列

bet*_*eta 6 python split pandas

我有一个包含(除了其他列)全名的pandas数据框:

 fullname
 martin master
 andreas test
Run Code Online (Sandbox Code Playgroud)

我想创建一个新列,它沿着空格分割fullname列,并将最后一个元素分配给一个新列.结果应如下所示:

 fullname           lastname
 martin master      master
 andreas test       test
Run Code Online (Sandbox Code Playgroud)

我以为它会像这样工作:

df['lastname'] = df['fullname'].str.split(' ')[-1]
Run Code Online (Sandbox Code Playgroud)

但是,我得到了一个 KeyError: -1

我使用[-1],这是拆分组的最后一个元素,以确保我得到真正的姓氏.在某些情况下(例如像安德烈·马丁大师这样的名字),这有助于获得姓氏,即主人.

那我该怎么做呢?

EdC*_*ica 10

您需要另一个str访问每行的最后一个拆分,您所做的主要是尝试使用不存在的标签索引该系列:

In [31]:

df['lastname'] = df['fullname'].str.split().str[-1]
df
Out[31]:
         fullname lastname
0   martin master   master
1    andreas test     test
Run Code Online (Sandbox Code Playgroud)