or
Ve and
piton ifadeleri gerektiren truth
-değerlerine. İçin pandas
Kullanmak "Bitsel" bu yüzden bu belirsiz olarak kabul edilir |
(veya) ya da &
operasyonları (ve):
result = result[(result['var']>0.25) | (result['var']<-0.25)]
Bunlar, bu tür veri yapıları için element olarak or
(veya and
) vermek üzere aşırı yüklenmiştir .
Bu ifadeye biraz daha açıklama eklemek için:
Eğer almak istediğinizde istisnası atılır bool
a pandas.Series
:
>>> import pandas as pd
>>> x = pd.Series([1])
>>> bool(x)
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Ne isabet operatör bir yerdi örtülü için işlenen dönüştürülür bool
(kullandığınız or
ama aynı zamanda için olur and
, if
ve while
):
>>> x or x
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> x and x
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> if x:
... print('fun')
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> while x:
... print('fun')
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Bu 4 tabloların yanısıra bazı gizlemek birkaç piton işlevleri vardır bool
(gibi aramaları any
, all
, filter
, ...) bu normalde sorunlu değildir pandas.Series
ancak şeyiyle ben bu hatırlatmak istedik.
Sizin durumunuzda istisna gerçekten yararlı değildir, çünkü doğru alternatiflerden bahsetmez . İçin and
ve or
şunları kullanabilirsiniz (öğe bazında karşılaştırmalar istiyorsanız):
Operatörleri kullanıyorsanız , operatör önceliği nedeniyle parantezinizi doğru ayarladığınızdan emin olun .
Orada birkaç mantıksal numpy fonksiyonları olmalıdır üzerinde çalışmak pandas.Series
.
İstisnada belirtilen alternatifler if
veya ile karşılaşırsanız daha uygundur while
. Bunların her birini kısaca açıklayacağım:
Serinizin boş olup olmadığını kontrol etmek istiyorsanız :
>>> x = pd.Series([])
>>> x.empty
True
>>> x = pd.Series([1])
>>> x.empty
False
Python normalde , açık bir boole yorumlaması yoksa len
kapların (örneğin ...) gth değerini doğru-değer olarak yorumlar. Python benzeri bir kontrol istiyorsanız, şunları yapabilirsiniz: veya yerine .list
tuple
if x.size
if not x.empty
if x
Eğer senin Series
içeren bir ve yalnızca bir boolean değeri:
>>> x = pd.Series([100])
>>> (x > 50).bool()
True
>>> (x < 50).bool()
False
Serinizin ilk ve tek öğesini kontrol etmek istiyorsanız ( .bool()
boole içeriği olmasa bile çalışır):
>>> x = pd.Series([100])
>>> x.item()
100
Eğer kontrol etmek istiyorsanız tüm veya herhangi bir öğe-boş değil ya-Yanlış değil sıfır şöyledir:
>>> x = pd.Series([0, 1, 2])
>>> x.all() # because one element is zero
False
>>> x.any() # because one (or more) elements are non-zero
True
|
yerine kullanınor