If you really want to fly, you can turn the pandas series to numpy arrays first. For you example, it got twice as 2x faster than regular `np.select`.

Example:
```
cond_list = [df['Score'].values &gt;= 9,
((df['Score'].values &gt;= 8) &amp; (df['Score'].values &lt; 9)),
((df['Score'].values &gt;= 7) &amp; (df['Score'].values &lt; 8)),
((df['Score'].values &gt;= 6) &amp; (df['Score'].values &lt; 7)),
((df['Score'].values &gt;= 5) &amp; (df['Score'].values &lt; 6)),
((df['Score'].values &gt;= 4) &amp; (df['Score'].values &lt; 5))]

%timeit np.select(cond_list, choice_list, default='Require Activation')
23.5 &micro;s &plusmn; 1.74 &micro;s per loop (mean &plusmn; std. dev. of 7 runs, 10000 loops each)
```