Поскольку ваш фрейм данных идет с заголовками. Я бы действительно посоветовал использовать фильтр по маске следующим образом.
df = df[(df['Mathematics score'] > 0) & (df['Mathematics score'] < 100)]
Как было предложено @Trenton McKinney, верно, что использование iloc
иногда проще, потому что вам не нужно вводить имя столбца .
Итак, в вашем случае, поскольку столбец Mathematics score
является третьим, вам следует сделать:
df[~df.iloc[:, 2].between(0, 100, inclusive=False)]