使用 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
我有数据集的上限和下限,我希望能够为超出此范围的任何项目提取索引(最好在列表中):
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