熊猫每封电子邮件有一行

时间:2017-01-23 02:50:11

标签: python pandas

说我有下表,Peter和Halla,

Name    Age occupation  BillingContactEmail
Peter   44  Salesman    a@a.com
Andy    43  Manager a@a.com
Halla   33  Fisherman   b@b.com

如何让pandas包含

Name    Age occupation  BillingContactEmail
Peter   44  Salesman    a@a.com
Halla   33  Fisherman   b@b.com

我们只包含电子邮件的实例? (这意味着我们最终会有不同的电子邮件)

1 个答案:

答案 0 :(得分:4)

使用drop_duplicates

df.drop_duplicates(subset=['BillingContactEmail'])

    Name  Age occupation BillingContactEmail
0  Peter   44   Salesman             a@a.com
2  Halla   33  Fisherman             b@b.com

解决@ DSM的评论

  

您应该更具体地说明您要使用哪个标准来决定保留哪个标准。第一次看到那封电子邮件?最老的?等

默认情况下,drop_duplicates会保留找到的第一个实例。这相当于

df.drop_duplicates(subset=['BillingContactEmail'], keep='first')

但是,您也可以指定通过keep='last'

保留最后一个实例
df.drop_duplicates(subset=['BillingContactEmail'], keep='last')

    Name  Age occupation BillingContactEmail
1   Andy   43    Manager             a@a.com
2  Halla   33  Fisherman             b@b.com

或者,删除所有重复项

df.drop_duplicates(subset=['BillingContactEmail'], keep=False)

    Name  Age occupation BillingContactEmail
2  Halla   33  Fisherman             b@b.com