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

2024-10-01 00:17:31 发布

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

我有一个pandas数据框,其中包含(除其他列外)全名:

 fullname
 martin master
 andreas test
< P>我想创建一个新的列,它将空白列中的FulcNeNo列拆分,并将最后一个元素赋值给一个新列。结果应该是:

^{pr2}$

我想应该是这样的:

df['lastname'] = df['fullname'].str.split(' ')[-1]

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

我使用[-1],这是分割组的最后一个元素,以确保我得到真正的姓。在某些情况下(例如,andreas martin master),这有助于获得姓,即master。在

那我该怎么做呢?在


Tags: 数据testmaster元素pandasdf空白martin
2条回答

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

In [31]:

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

如果需要创建2个新列,请使用带参数n=1^{}。如果只需要最后一列,^{}解决方案更好:

print (df)
                fullname
0          martin master
1           andreas test
2  andreas martin master

df[['first_name','last_name']] = df['fullname'].str.rsplit(expand=True, n=1)
print (df)
                fullname      first_name last_name
0          martin master          martin    master
1           andreas test         andreas      test
2  andreas martin master  andreas martin    master

相关问题 更多 >