【发布时间】:2021-05-01 05:57:52
【问题描述】:
所以我碰巧收到了一个 xlms 文件,其中包含具有不同头衔的个人姓名,例如先生、女士、博士、夫人、法官等。但是其中一些名称在一个名称示例中包含多个头衔,例如“Mr Mrs Ronderval”, “Dr Rev Johns Mr”等。所以我试图删除所有这些,除了一个,因此最终结果应该是 Ronderval 先生或 Ronderval 夫人,Johns 博士或 Rev Johns 或 Johns 先生,其中任何一个都可以。到目前为止,我所做的是将字符串转换为列表列表,例如
name_list = [['Mr','Mrs', 'Ronderval'], ['Dr', 'Rev','Johns', 'Mr']] 并有一个标题列表title=['Mr', 'Ms', 'Dr', 'Mrs', 'Judge','Rev']。因此,我尝试遍历 name_list,从标题中删除所有值,结果显然是“Roderval”和“Johns”,但我希望至少以 Ronderval 先生或 Ronderval 夫人、Johns 博士或 Rev Johns 或 Mr约翰斯。我该怎么办?
这是我使用列表理解的代码
name_list=[[x for x in l if (x not in title )] for l in name_list]
【问题讨论】:
-
请在您的问题中添加更多示例数据,涵盖所有边缘情况。
-
其他数据样本的名字中可以包含其他尊称,如Judge、Hon、Honourable、Prof等,我只是选择了最受欢迎的,比如标题列表中的那些。这里的想法是在每个名字中只留下一个尊称。不幸的是,这是我们不时处理的杂乱数据类型。另一种情况可能是
Elizabeth Jones Prof Miss,如果我想删除教授或小姐并交换它们以使其有意义,则导致Miss Elizabeth Jones或Prof Elizabeth Jones
标签: python data-science data-cleaning