熊猫:drop_duplicates无法正常工作

时间:2018-05-17 11:23:18

标签: python-3.x pandas dataframe

对于以下系列,drop_duplicates无效:

8672.0
8672.0
8672.0
8672.0
8670.0
8670.0
8670.0
8670.0
8670.0
8670.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8672.0
8670.0
8670.0
8670.0
8670.0
8670.0

使用drop_duplicates(keep='first'),它应返回4个值:

8672.0
8670.0
8672.0
8670.0

但实际上,它只返回前2个值:

8672.0
8670.0

它有什么问题或使用此drop_duplicates获取我想要的值的任何建议?非常感谢你。

2 个答案:

答案 0 :(得分:3)

DataFrame.drop_duplicates()删除所有重复项,而不仅仅是连续的重复项。

假设s是系列:

In [93]: s[s.diff().ne(0)]
Out[93]:
0     8672.0
3     8670.0
9     8672.0
19    8670.0
Name: 8672.0, dtype: float64

答案 1 :(得分:2)

我认为需要首先连续的值,因此解决方案按shift ed值和an boolean indexing进行比较:

s1 = s[s.ne(s.shift())]
print (s1)
0     8672.0
4     8670.0
10    8672.0
20    8670.0
Name: col, dtype: float64