检查数据帧中的所有值是否在一定范围内,数据帧是否有类似“between”的属性

Check if all values in a dataframe is in a certain range, is there an attribute like `between` for dataframe

这有点尴尬。我有一个如下所示的数据框:

ticker          AAPL       AMD      BIDU     GOOGL      MSFT      NVDA  
Date                                                                     
2011-09-09  0.858191  0.726996  0.777005  0.738601  0.882434  0.844533   
2011-12-19  0.703769  0.789988  0.757444  0.866387  0.865608  0.817366   
2012-03-30  0.508363  0.737064  0.580451  0.332273  0.502175  0.582802   
2012-07-11  0.715340  0.754651  0.674592  0.680000  0.738280  0.664645   
2012-10-18  0.579068  0.342038  0.422278  0.441221  0.794282  0.571650   
2013-02-01  0.644426  0.440327  0.363183  0.571987  0.639081  0.508256   
2013-05-14  0.571758  0.342966  0.340528  0.681480  0.499203  0.612509   
2013-08-22  0.256618  0.439223  0.503821  0.632371  0.428107  0.496814   
2013-12-02  0.395739  0.281040  0.535051  0.457601  0.371708  0.555272   
...

我想检查 df 中的所有值是否都在 [-1,1] 范围内,我只是使用了

df.isin([-1,1])

返回

ticker       AAPL    AMD   BIDU  GOOGL   MSFT   NVDA  
Date                                                                        
2011-09-09  False  False  False  False  False  False
2011-12-19  False  False  False  False  False  False
2012-03-30  False  False  False  False  False  False
2012-07-11  False  False  False  False  False  False
2012-10-18  False  False  False  False  False  False
2013-02-01  False  False  False  False  False  False
2013-05-14  False  False  False  False  False  False
2013-08-22  False  False  False  False  False  False
2013-12-02  False  False  False  False  False  False  
...

这显然是错误的。但是,如果我使用 df["AAPL"].between(-1,1).any() 检查单个列,它会给我 True.

这是为什么?
数据框是否有类似 between 的属性?因为'DataFrame' object has no attribute 'between'

between 只是一个 Series 方法。使用数学运算符对 DataFrame:

进行比较
>>> (-1 <= df) & (df <= 1)

ticker      AAPL   AMD  BIDU  GOOGL  MSFT  NVDA
Date
2011-09-09  True  True  True   True  True  True
2011-12-19  True  True  True   True  True  True
2012-03-30  True  True  True   True  True  True
2012-07-11  True  True  True   True  True  True
2012-10-18  True  True  True   True  True  True
2013-02-01  True  True  True   True  True  True
2013-05-14  True  True  True   True  True  True
2013-08-22  True  True  True   True  True  True
2013-12-02  True  True  True   True  True  True

之后,您可以使用 anyall 沿轴(或不沿轴)到 select 列或行。