1 回答

TA贡献1820条经验 获得超9个赞
关键是决定什么决定一个值是一个名字,什么不是。
从您的示例中,似乎'Penelope Deans','Corinne M. Percell'和'Tereasa T.'是名称,而'1/1/2020'不是(因为它有数字和斜杠),'Digital Marketer at XXX'也不是,因为它遵循模式<namelike> at <namelike>。
请注意,根据这些规则'John at Smith'也不会是名称。但是由于“at”在英语中不是一个普通的贵族助词,它应该可以工作,而且您并不希望专门涵盖外国名称(即使那样,名称中的“at”也很少见)。
使用正则表达式的 Python 解决方案:
import pandas as pd
lst = [
'Penelope Deans', '1/1/2020', 'Digital Marketer at XXX', 'Corinne M. Percell',
'1/1/2020', 'Tereasa T.', 'Licensed Real Estate at YYY'
]
df = pd.DataFrame(lst)
df = df[df[0].str.match('^((?! at )[A-z\s\.])+$')]
print(df)
结果:
0
0 Penelope Deans
3 Corinne M. Percell
5 Tereasa T.
添加回答
举报