数据集有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
发布于 2020-05-19 22:08:14
for name in dataset:
first = name.split()[-2]
last = name.split()[-1]
# save here这将适用于大多数名称,而不是所有名称。为了可重复性,您可能需要一个标题列表,如(dr,md,univ.)跳过
发布于 2020-05-19 22:07:49
因为它不包含任何结构,所以你不走运。一个特别的解决方案可以是写下所有位置/标题/连词和其他你已经识别的噪音的列表,然后从行中去掉它们。然后,如果你注意到一些其他你想要排除的东西,只需将它们添加到你的列表中。
这不会解决某些行的名称颠倒顺序的问题。因此,它将需要您手动检查所有内容并检查行是否有效,但这可能比手动编辑每一行要快。
一个简单的暴力例子是:
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))https://stackoverflow.com/questions/61892662
复制相似问题