对于以下系列,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
获取我想要的值的任何建议?非常感谢你。
答案 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