Python 基于条件的索引获取

Python 基于条件的索引获取,python,pandas,Python,Pandas,从以下代码: aps1.Status.head(10) Out[663]: 0 OK 1 OK 2 OK 3 OK 4 OK 5 OK 6 Fail 7 OK 8 Fail 9 OK 如何获取状态为Fail的索引?我试过: print (index for index,value in enumerate(aps1.Status) if value == "Fail"]) 但我有语法错误。谢谢与索引一起使用: L = aps1.

从以下代码:

aps1.Status.head(10)
Out[663]: 
0    OK
1    OK
2    OK
3    OK
4    OK
5    OK
6    Fail
7    OK
8    Fail
9    OK
如何获取状态为Fail的索引?我试过:

 print (index for index,value in enumerate(aps1.Status) if value == "Fail"])
但我有语法错误。谢谢

索引一起使用

L = aps1.index[aps1.Status == 'Fail']
索引一起使用

L = aps1.index[aps1.Status == 'Fail']

删除末尾的“]”

print (index for index,value in enumerate(aps1.Status) if value == "Fail"**]**)

删除末尾的“]”

print (index for index,value in enumerate(aps1.Status) if value == "Fail"**]**)

由于额外的原因,您将获得该错误]。尝试删除它

由于额外的原因,您将收到该错误]。尝试将其删除

在数据框上使用列表理解,并在状态列中使用if条件

status=['OK'
,'OK'
,'OK'
,'OK'
,'OK'
,'OK'
,'Fail'
,'OK'
,'Fail'
,'OK']
df=pd.DataFrame({'Status':status})
df.reset_index(inplace=True)

print([index for index,item in df.iterrows() if item['Status']=='Fail'])
输出
[6,8]

使用列表理解,在数据框上使用带有if条件的iterrows作为状态列

status=['OK'
,'OK'
,'OK'
,'OK'
,'OK'
,'OK'
,'Fail'
,'OK'
,'Fail'
,'OK']
df=pd.DataFrame({'Status':status})
df.reset_index(inplace=True)

print([index for index,item in df.iterrows() if item['Status']=='Fail'])
输出
[6,8]

一如既往地使用
aps1.index[aps1.Status.eq('Fail')]
使用
aps1.index[aps1.Status.eq('Fail')]
进行救援!像往常一样去营救!