说我有下表,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
我们只包含电子邮件的实例? (这意味着我们最终会有不同的电子邮件)
答案 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