2015-12-08 37 views
5

değerinden daha büyük en az bir öğe içerip içermediğini kontrol edin Aşağıdaki kod, Baskı öğesi, 1'den büyük en az bir öğe içerdiğinden, True yazdıracaktır. Ancak, bu biraz Pythonic olmayan gibi görünüyor. Bir dizi belirli bir değer olan bir sayı içeriyorsa, True döndürmenin daha Pythonic bir yolu var mı?Bir panda dizisinin

import pandas as pd 

s = pd.Series([0.5, 2]) 
print True in (s > 1) 

Gerçek

DÜZENLEME: Yukarıdaki cevap un-Pythonic olduğu kalmıyor, bazen nedense hatalı bir sonuç döndürür. Örneğin:

s = pd.Series([0.5]) 
print True in (s < 1) 

Yanlış

cevap

7
O koşul True olup olmadığını kontrol etmek any yöntemi kullanabilirsiniz

en az bir değer için: Eğer bu işlemi uzatmak nasıl

In [36]: (s > 1).any() 
Out[36]: True 
+0

tüm değerler arasında sıfırdan daha büyük bir değer varsa geri dönecek şekilde bir sütun kümesine mi? –

+0

@FedericoGentile, herhangi bir (aks = 1) .any() 'gibi bir şeyden mi bahsediyorsunuz? İlk olarak, alt kümenizdeki tüm satırlarda kontrol edilecek ve Pandalar Serisini üretecektir. İkinci olarak, herhangi bir "Doğru" değer için dizi kontrol edersiniz. Aksi takdirde yorumda bir örnek verebilir veya tüm detaylarla yeni bir soru sormak daha iyi olabilir. –

+0

3 sütun (A, B, C) içeren bir veri çerçevem ​​varsa ve A ve B sütununda en az 0 değerinden daha ince bir değer olup olmadığını kontrol etmek istiyorum… olası bir çözüm bunu yapmaktır: (df.A> 1) .any() ve (df.B> 1) .any(). Bunu yapmanın daha güzel ve zarif bir yolu var mı? –