如何在条件drop_duplicates()中删除重复项根本不起作用?

时间:2018-06-16 16:44:07

标签: python pandas

我正在挑选同一首字母的名字。

当结果超过2的任何行时,它会自动重复第一行和最后一行以外的部分,尽管底部语句仍然读取非重复行。 Drop_duplicates()根本不起作用,无法删除重复的行。

Pls refer to images I scan as below

红利问题:为什么当只有一个匹配的行时,值选择Numbers>13908无效?

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,

import pandas as pd

namesDf = pd.DataFrame() 
namesDf['Names'] = ['Emily', 'Elizabeth', 'Erin', 'Erica', 'Erin', 'Erica']
namesDf['Numbers'] = [123144, 23423, 13909, 14000, 13909, 14000]

DataFrame输出:

       Names  Numbers
0      Emily   123144
1  Elizabeth    23423
2       Erin    13909
3      Erica    14000
4       Erin    13909
5      Erica    14000

现在我们删除重复项:

namesDf = namesDf[namesDf.Numbers > 13908].drop_duplicates('Numbers', keep = 'first')

这将保留第一个实例并删除其他重复实例

       Names  Numbers
0      Emily   123144
1  Elizabeth    23423
2       Erin    13909
3      Erica    14000

要保留最后一个实例并删除其他实例,请将keep更改为last:

namesDf = namesDf[namesDf.Numbers > 13908].drop_duplicates('Numbers', keep = 'last')

如果要删除发生重复的所有实例,请将keep属性更改为false:

namesDf = namesDf[namesDf.Numbers > 13908].drop_duplicates('Numbers', False)

这是你期望的吗?