首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串拆分为名字和姓氏的最简单方法是什么?

将字符串拆分为名字和姓氏的最简单方法是什么?
EN

Stack Overflow用户
提问于 2020-05-19 21:47:34
回答 2查看 41关注 0票数 0

数据集有14k行,并且有许多标题,等等。

我是Pandas和Python的初学者,我想知道如何从这个数据集中获得名字和姓氏的输出。

数据集:

0 Pr.Doz.Dr。克劳斯·塞姆勒·法恰兹·弗劳恩赫。

1大学博士。(布达佩斯)达莉亚·拉克斯

2医学博士。Jovan Stojilkovic

3医学博士。德克·施耐德

4马克·舍尔曼

14083袋Kinderarztpraxis

14084 Ulrich Bromig先生

14085 Sohn Heinrich

14086号先生,sc。医学。阿马迪乌斯·哈特威格

14087 Jasmin Rieche

EN

回答 2

Stack Overflow用户

发布于 2020-05-19 22:08:14

代码语言:javascript
复制
    for name in dataset:
        first = name.split()[-2]
        last = name.split()[-1]
        # save here

这将适用于大多数名称,而不是所有名称。为了可重复性,您可能需要一个标题列表,如(dr,md,univ.)跳过

票数 1
EN

Stack Overflow用户

发布于 2020-05-19 22:07:49

因为它不包含任何结构,所以你不走运。一个特别的解决方案可以是写下所有位置/标题/连词和其他你已经识别的噪音的列表,然后从行中去掉它们。然后,如果你注意到一些其他你想要排除的东西,只需将它们添加到你的列表中。

这不会解决某些行的名称颠倒顺序的问题。因此,它将需要您手动检查所有内容并检查行是否有效,但这可能比手动编辑每一行要快。

一个简单的暴力例子是:

代码语言:javascript
复制
excludes = {'dr.', 'herr', 'budapest', 'med.', 'für', ... }

new_entries = []

for title in all_entries:
    cleaned_result = []
    parts = title.split(' ')
    for part in parts:
        if part.lowercase() not in excludes:
            cleaned_result.append(part)

    new_entries.append(' '.join(cleaned_result))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61892662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档