Ich versuche zu testen, ob ein Wert in einem series
ist ein eindeutiger Wert. Ich weiß series.unique
kann eine Reihe von einzigartigen Werten in der series
geben, aber nicht sicher, wie es in meinem Fall passt. Oder iteriere durch die series
, aber es ist nicht sehr effizient, also frage ich mich, gibt es einen besseren Weg, das zu tun?Wie überprüft man einen Wert in einer Serie ist einzigartig
2
A
Antwort
7
Sie können duplicated
verwenden mit dem Parameter keep=False
und dann umkehren boolean Series
von ~
:
print df
col
0 a
1 b
2 a
3 b
4 c
print df.col.duplicated(keep=False)
0 True
1 True
2 True
3 True
4 False
Name: col, dtype: bool
print ~df.col.duplicated(keep=False)
0 False
1 False
2 False
3 False
4 True
Name: col, dtype: bool
1
Sie boolean Indizierung und integrierte in len()
kombinieren konnte die genaue Höhe der Instanzen eines bestimmten Wert zu erhalten.
Angenommen, Ihre DataFrame
sieht wie folgt aus:
In [155]: test_1 = pd.DataFrame(np.array([1,2,3,3,4]), columns=['A'])
In [156]: test_1
Out[156]:
A
0 1
1 2
2 3
3 3
4 4
Sie können die Menge der Instanzen Wert 3
oder 1
wie diese:
In [158]: len(test_1[test_1.A == 3])
Out[158]: 2 ## two instances make for non-unique value
In [159]: len(test_1[test_1.A == 1])
Out[159]: 1 ## Unique value!!
diese Weise können Sie den genauen Wert definieren können Sie wollen um zu testen und die Anzahl der Instanzen dieses Wertes zu erhalten.