使用限制来获取索引名称熊猫数据框python
问题描述:
我有数据集的上限和下限,我想能够拉出索引(最好在列表中)的任何项目落在此之外:使用限制来获取索引名称熊猫数据框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
和获取包含我认为这是有帮助的每个细胞真/假值的两个数据帧,但还没有能够得到进一步的和得到,如果任何项目索引在行=真。
有什么建议吗?
答
我认为你需要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
钉它!谢谢!!!! – Dippy