Pandas:修复数据框中键的拼写错误

Posted

技术标签:

【中文标题】Pandas:修复数据框中键的拼写错误【英文标题】:Pandas: fix typos in keys within a dataframe 【发布时间】:2018-09-28 00:03:29 【问题描述】:

所以,我有一个包含客户姓名的大型数据框。我结合使用电话号码和电子邮件来为每个客户创建一个唯一的 ID 密钥。但是,有时电子邮件中会出现拼写错误,因此它会为同一客户创建两个密钥。

像这样:

Key                        | Order #
555261andymiller@gmail.com   901345
555261andymller@gmail.com    901345

我正在考虑根据电话号码(部分字符串)组合所有键,然后将每个组中的所有键分配给每个组中的第一个键。我将如何在 Pandas 中执行此操作?我尝试过遍历行,也尝试过通过部分字符串使用 groupby 方法,但我似乎无法使用此方法分配新值。

【问题讨论】:

在创建密钥之前清理电子邮件地址 我正在处理数以万计的行,但我不确定除了手动之外如何清理电子邮件地址。 你怎么知道哪个是错字的电子邮件地址,哪个是正确的?上面有任何类型的时间戳吗?如果这些人的电子邮件实际上是 andymller@.. 怎么办? 这对我的目的来说真的没关系,这是正确的。我只需要客户具有相同的标识符。无论是andymiller还是andymler都无关紧要。 【参考方案1】:

如果您真的不在乎新 ID 是什么,您可以按字符串的第一个字符(代表电话号码)进行分组

例如:

df.groupby(df.Key.str[:6]).first()

这将产生一个数据框,其中索引是客户记录的第一个条目。这假设电话号码总是正确的,尽管这听起来不应该是一个问题

【讨论】:

以上是关于Pandas:修复数据框中键的拼写错误的主要内容,如果未能解决你的问题,请参考以下文章

Python 中的 Pandas 错误:列的长度必须与键的长度相同

ruby reddit'hot'算法,在ruby中,用拼写错误修复

在 read_csv 之后选择 pandas 数据框中的列时出现关键错误

如何在pandas中使用base 10错误修复int()的无效文字

从具有复合(分层)索引的 Pandas 数据框中选择行

更新 Firebase 中键的值