Pandas数据帧列的矢量化人名库

2024-09-24 06:31:40 发布

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

我在pandas数据框中有一个full_name列,它有个人的名字。例如:

Full_Name

Saumendra Nayak
Pawan Shinde
Arun Chopra
Neil Anderson

我得把这些名字分为名字、名字和姓氏。我决定使用HumanName(nameparser)库。在

但是,对于我当前的方法,我必须使用循环将列中的每个名称拆分为其组件。在

^{pr2}$

我对Python有点陌生,这个循环似乎是我最好避免的。有人能建议一下人名库是否可以用矢量化的方式使用,这样我就可以避免像上面代码那样在循环中设置了吗?在


Tags: 数据namepandas名字fullandersonneilarun
1条回答
网友
1楼 · 发布于 2024-09-24 06:31:40

您可以尝试先构建一个名称分解函数,然后在分配列之前压缩组件。在

components = ('title', 'first', 'middle', 'last', 'suffix', 'nickname')

def name_decomp(n):
    h_n = HumanName(n)
    return (getattr(h_n, comp) for comp in components)

rslts = list(zip(*df.Full_Name.map(name_decomp)))

for i, comp in enumerate(components):
    df[comp] = rslts[i]

类似的演示因为我没有那个库

^{pr2}$

相关问题 更多 >