if语句在python中的条件

时间:2018-04-12 11:44:51

标签: python pandas numpy

这个想法是用户将能够在特定条件下提取某一行。条件是返回最后一个' Pass'失败前遇到过。 例如,用户插入值5,if语句应打印出3.这是他最后一次通过。如果用户插入0,它也会返回3,因为这是他在失败前最后一次经过。

所以基本上这个想法是返回他失败前遇到的最后一次传球。 在同一数据集上的另一个例子,如果用户通过7,它将返回7.因为这是最后一次传递'在他失败之前。

---------------------------
#dataSet

Index Result
0      Pass
1      Pass
2      Pass
3      Pass
4      Fail
5      Fail
6      Pass
7      Pass
8      Fail

---------------------------

result = 'Result'
if df.loc[index_value,result] == 'Pass':

else:

3 个答案:

答案 0 :(得分:1)

我认为需要创建查找Series

a = df['Result'] == 'Pass'
m = a != a.shift(-1) & a

b = pd.Series(df.index.where(m)).ffill().bfill().astype(int)
print (b)
0    3
1    3
2    3
3    3
4    3
5    3
6    3
7    7
8    7
dtype: int32

val = 7
print(b.loc[val])
7

答案 1 :(得分:0)

IIUC:

In [125]: user_input = 7

In [126]: if (wd.iloc[user_input]['Result']=='Pass'):
     ...:     value = user_input
     ...:     print(value)
     ...: else:
     ...:     value = (wd[wd.Result=='Pass'].Index - user_input).abs().argmin()
     ...:     print(value)
     ...:     
6

In [124]: wd
Out[124]: 
   Index Result
0      0   Pass
1      1   Pass
2      2   Pass
3      3   Pass
4      4   Fail
5      5   Fail
6      6   Pass
7      7   Fail

答案 2 :(得分:0)

last_pass=0 #set default last pass

result = 'Result'
if df.loc[index_value,result] == 'Pass':
    last_pass = index_value
    return index_value
else:
    return last_pass