Delete elements of a list with the same x value
Select[Counts[data[[All, 1]]]@#[[1]] == 1 &] @ data
Join @@ Select[Length@# == 1 &] @ GatherBy[data, First]
Values @ GroupBy[data, First, If[Length @ # > 1, Nothing, #[[1]]] &]
data[[Flatten @ Select[Length @ # == 1 &] @
GatherBy[Range @ Length @ data, data[[#, 1]] &]]]
FixedPoint[SequenceReplace[#, b : {{a_, _}, ___, {a_, _}} :>
Sequence @@ DeleteCases[b, {a, _}]] &, data]
all give
{{0, 1}, {5, -2}, {4, 4}, {3, 0}, {6, 0.5`}, {7, 2}, {8, -5}, {9, 2}}
Tally[data, First@#1 == First@#2 &] // Cases[{x_, 1} :> x]
gives
{{0, 1}, {5, -2}, {4, 4}, {3, 0}, {6, 0.5}, {7, 2}, {8, -5}, {9, 2}}