0

数据集有 14k 行,有很多标题等。

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

数据集:

0 Pr.Doz.Dr. Klaus Semmler Facharzt für Frauenhe...

1 大学博士。(布达佩斯) Dalia Lax

2 医学博士。约万·斯托吉尔科维奇

3 医学博士。德克施耐德

4 马克·舒尔曼

14083 袋 Kinderarztpraxis

14084 乌尔里希·布罗米格先生

14085 孙海因里希

14086 Herr Dr. sc. 医学。艾玛迪斯·哈特维希

14087 茉莉花梨

4

2 回答 2

1
    for name in dataset:
        first = name.split()[-2]
        last = name.split()[-1]
        # save here

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

于 2020-05-19T14:08:13.607 回答
0

由于它不包含任何结构,因此您不走运。一个特别的解决方案可能是只写下您识别的所有位置/标题/连接和其他噪音的列表,然后从行中删除它们。然后,如果您发现其他一些您想排除的东西,只需将它们添加到您的列表中。

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

一个简单的蛮力示例是:

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))
于 2020-05-19T14:07:49.413 回答