【发布时间】:2016-11-24 17:17:50
【问题描述】:
我有一个包含(除其他列之外)全名的 pandas 数据框:
fullname
martin master
andreas test
我想创建一个新列,它将全名列沿空白区域拆分,并将最后一个元素分配给一个新列。结果应如下所示:
fullname lastname
martin master master
andreas test test
我认为它会像这样工作:
df['lastname'] = df['fullname'].str.split(' ')[-1]
但是,我收到了KeyError: -1
我使用[-1],这是拆分组的最后一个元素,以确保我得到真实的姓氏。在某些情况下(例如像 andreas martin master 这样的名字),这有助于获取姓氏,即 master。
那么我该怎么做呢?
【问题讨论】:
-
一键搞定:
df[['first_name','last_name']] = df['fullname'].str.split(' ', expand=True) -
或者更好
df[['first_name','last_name']] = df['fullname'].str.split(expand=True)