2016-04-14 52 views
2

series içinde bir değer benzersiz bir değer olup olmadığını sınamak için çalışıyorum. Biliyorum series.unique, series'da benzersiz değerler dizisi verebilir, ancak durumuma nasıl uyduğundan emin değilim. Veya series ile yineleyin, ama çok verimli değil, bu yüzden bunu yapmak için daha iyi bir yol olduğunu merak ediyorum?Bir dizide bir değer nasıl kontrol edilir benzersiz

cevap

7

Sen parametresi keep=False ile duplicated kullanmak ve daha sonra ~ tarafından Series boolean evirebilirsiniz:

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

Sen boolean indeksleme ve birleştirmek olabilir yerleşik len() verilen bir değerin örneklerini tam miktarını almak için. Böyle

varsayarsak sizin DataFrame görünüyor: Böyle değeri 3 veya 1 örnekleri miktarını alabilirsiniz

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

istediğiniz tam değerini tanımlayabilir Bu şekilde Bu değerin örneklerini test etmek ve almak için.