Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does `False in pandas.Series([True,True])` return True?

Tags:

python

pandas

False in [True,True]

False in pd.Series([True,True])

the first line of code returns False the second line of code returns True!

I think I must be doing something wrong or missing something here. I get the same thing when I check if the series has 0. Can someone please explain this to me?

like image 546
mxdev Avatar asked Nov 30 '25 14:11

mxdev


2 Answers

You are checking whether 0 (internal False representation) is in the Series's index - @Uriel has shown a docstring explaining why is it happening:

In [286]: False in pd.Series([True,True])
Out[286]: True

is the same as:

In [287]: 0 in pd.Series([True,True])
Out[287]: True

and

In [288]: True in pd.Series([True,True])
Out[288]: True

is the same as:

In [290]: 1 in pd.Series([True,True])
Out[290]: True

but

In [291]: 2 in pd.Series([True,True])
Out[291]: False

because there is no such index in this series:

In [292]: pd.Series([True,True])
Out[292]:
0    True
1    True
dtype: bool

UPDATE:

if you want to check whether at least one series element is False or True:

In [296]: (pd.Series([True, True]) == False).any()
Out[296]: False

In [297]: (pd.Series([True, True]) == True).any()
Out[297]: True
like image 197
MaxU - stop WAR against UA Avatar answered Dec 02 '25 03:12

MaxU - stop WAR against UA


>>> help(pd.Series([True, True]).__contains__)
Help on method __contains__ in module pandas.core.generic:

__contains__(key) method of pandas.core.series.Series instance
    True if the key is in the info axis

>>> pd.Series([True, True])
0    True
1    True
dtype: bool

^
info axis
like image 32
Uriel Avatar answered Dec 02 '25 02:12

Uriel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!