我有以下小组
unemp nobsRel measure rank nobsRel2 nobsCumSummed
year foo
2000 8010 0.000024 0.000167 1.0 348.0 0.000167 0.980176
4950 0.000264 0.003630 1.0 349.0 0.003630 0.983806
2540 0.000438 0.011027 1.0 350.0 0.011027 0.994833
9830 0.000118 0.000118 NaN NaN 0.000118 0.994952
9920 0.005048 0.005048 NaN NaN 0.005048 1.000000
这是当我尝试删除重复项时会发生什么:
在[104]中:test.drop_duplicates(subset =' rank') 出[104]:
unemp nobsRel measure rank nobsRel2 nobsCumSummed
year foo
2000 8010 0.000024 0.000167 1.0 348.0 0.000167 0.980176
4950 0.000264 0.003630 1.0 349.0 0.003630 0.983806
2540 0.000438 0.011027 1.0 350.0 0.011027 0.994833
9830 0.000118 0.000118 NaN NaN 0.000118 0.994952
为什么最后一行仍然存在?它不见了!
In[105]: np.isnan(test.loc[(2000, 9830), 'rank'])
Out[105]:
True
我pandas
0.19.0
答案 0 :(得分:5)
drop_duplicates()
方法删除除第一个之外的重复项(默认情况下)。但是,您可以通过更改参数保持将其设置为last
,first
或False
来选择要保留的参数。查看documentation here
试试这个:
test.drop_duplicates(subset='rank', keep=False)
答案 1 :(得分:1)
可悲的是,似乎drop_duplicates
没有做你想做的事。它会删除重复项,但不会删除重复项与...重复的原始行。
幸运的是,可以使用调用的keep=False
选项覆盖。