熊猫不会贬低南瓜

时间:2016-10-10 11:34:59

标签: python pandas

我有以下小组

              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

2 个答案:

答案 0 :(得分:5)

drop_duplicates()方法删除除第一个之外的重复项(默认情况下)。但是,您可以通过更改参数保持将其设置为lastfirstFalse来选择要保留的参数。查看documentation here

试试这个:

test.drop_duplicates(subset='rank', keep=False)

答案 1 :(得分:1)

可悲的是,似乎drop_duplicates没有做你想做的事。它会删除重复项,但不会删除重复项与...重复的原始行。

幸运的是,可以使用调用的keep=False选项覆盖。