使用 Limits 获取索引名称 pandas 数据框 python

Using Limits to get index name pandas data frame python

我有数据集的上限和下限,我希望能够为超出此范围的任何项目提取索引(最好在列表中):

  X1 X2 X3 X4 X5 X6 X7 X8 X9
1  1  7  6  0  7  3  0  0  8
2  4  8  3  4  9  6  3  2  3
3  3  7  5  5  7  5  1  1  4
4  2  6  2  1  3  9  4  3  9
5 10  2  2  6  4  7  4  9  7

#Have another data frame with our limits
  X1 X2 X3 X4 X5 X6 X7 X8 X9
1  1  7  3  4  7  3  0  0  3
2  4  8  9 10  9  6  3  2  8

所以我想获得索引 1、4、5,因为在某些时候它们超出了我的限制。

我可以用这个:

llCheck = data < ll
hlCheck = data > hl

llCheck = 
X1    X2    X3    X4    X5    X6    X7    X8    X9
False False False True  False False False False False
False False False False False False False False False
False False False False False False False False False
False True  True  True  True  True  True  True  True
True  True  True  False True  True  True  True  False

并获取两个数据框,其中包含每个单元格的 true/false 值,我认为这很有帮助,但如果行中的任何项目 = true,则无法进一步获取索引。

有什么建议吗?

我认为您需要使用 DataFrame.any:

过滤 index 个值
ll = 0
hl = 2

m = (df > ll) & (df < hl)
L = df.index[m.any(axis=1)].tolist()
print (L)
[1, 3, 4]

解释:

#get mask by limits with chaining both conditions
m = (df > ll) & (df < hl)
print (m)
      X1     X2     X3     X4     X5     X6     X7     X8     X9
1   True  False  False  False  False  False  False  False  False
2  False  False  False  False  False  False  False  False  False
3  False  False  False  False  False  False   True   True  False
4  False  False  False   True  False  False  False  False  False
5  False  False  False  False  False  False  False  False  False

#check if at least one True per row
print (m.any(axis=1))
1     True
2    False
3     True
4     True
5    False
dtype: bool

#is possible filter rows
print (df[m.any(axis=1)])
   X1  X2  X3  X4  X5  X6  X7  X8  X9
1   1   7   6   0   7   3   0   0   8
3   3   7   5   5   7   5   1   1   4
4   2   6   2   1   3   9   4   3   9