2016-04-14 8 views
2

seriesの値が一意の値であるかどうかをテストしようとしています。私はseries.uniqueseriesに一意の値の配列を与えることができますが、私の場合にどのように適合するかはわかりません。またはseriesを繰り返し実行しますが、あまり効率的ではありません。そのためにはより良い方法があるのでしょうか?シリーズの値をチェックする方法は一意です

答えて

7

あなたはパラメータkeep=Falseduplicatedを使用して、~によってSeriesブール反転することができます

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

あなたはブール値インデックスとを組み合わせることができ、内蔵len()与えられた値のインスタンスの正確な量を取得します。このような

と仮定すると、あなたのDataFrameルックス:あなたはこのように値3または1のインスタンスの量を得ることができます

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 

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!! 

あなたが欲しい正確な値を定義することができますこの方法をこの値のインスタンスの量をテストして取得します。

関連する問題