False in [True,True]
False in pd.Series([True,True])
第一行代码返回False 第二行代码返回True!
我认为我必须做错事或遗漏某些事情。当我检查系列是否有0时,我得到同样的事情。有人可以向我解释这个吗?
答案 0 :(得分:8)
您正在检查系列的索引 - @Uriel has shown a docstring explaining why is it happening中是否0
(内部False
表示):
In [286]: False in pd.Series([True,True])
Out[286]: True
与:
相同In [287]: 0 in pd.Series([True,True])
Out[287]: True
和
In [288]: True in pd.Series([True,True])
Out[288]: True
与:
相同In [290]: 1 in pd.Series([True,True])
Out[290]: True
但
In [291]: 2 in pd.Series([True,True])
Out[291]: False
因为本系列中没有这样的索引:
In [292]: pd.Series([True,True])
Out[292]:
0 True
1 True
dtype: bool
<强>更新强>
如果要检查至少一个系列元素是False还是True:
In [296]: (pd.Series([True, True]) == False).any()
Out[296]: False
In [297]: (pd.Series([True, True]) == True).any()
Out[297]: True
答案 1 :(得分:2)
>>> 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
答案 2 :(得分:0)
如果您要检查多个值,我强烈推荐isin
method。
>>> pd.Series(range(10)).isin([1]).any()
True