使用pandas,我尝试将全名拆分为两个新列,first_name和last_name

问题描述 投票:0回答:1

我正在尝试将标题为全名的列拆分为名字和姓氏。我正在使用以下代码。然而,当我有像玛丽·范德史密斯这样的名字时,姓氏对我不起作用。范德史密斯应该被捕获为姓氏,但我不确定如何做到这一点。在下面的代码中我只收到 smith。

df['first_name'] = df['full_name'].str.split().str[0]
df['last_name'] = df['full_name'].str.split().str[-1]

任何指导或帮助将不胜感激。

pandas dataframe split
1个回答
0
投票

您可以使用切片,而不是尝试使用索引来获取姓氏。切片允许您将第二个字符串位置提取到末尾,从而在不使用索引值的情况下有效捕获姓氏。最后你可以使用“join()”方法将它们连接在一起形成一个字符串..

df['名字'] = df['全名'].str.split().str[0] df['姓氏'] = df['全名'].str.split().str[1:].str.join(' ')

© www.soinside.com 2019 - 2024. All rights reserved.