df = pd.DataFrame([[0, 0, 0, 0, 1, 1, 1, 240],
[0, 0, 0, 0, 0, 0, 0, 218],
[0, 0, 0, 0, 1, 1, 1, 236],
[0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 206]],
pd.Index(range(1, 6), name='ID'),
['Sept_2015', 'Oct_2015', 'Nov_2015', 'Dec_2015',
'Jan_2016', 'Feb_2016', 'Mar_2016', 'grad_time'])
numpy
a = np.array([236, 237, 238, 239, 240, 241, 242])
b = df.values[:, :-1]
g = df.values[:, -1][:, None] <= a
a[(b & g).argmax(1)] * (b & g).any(1)
df['trisk'] = a[(b != 0).argmax(1)] * (b != 0).any(1)
df
