Это потому, что ваши данные не имеют каких-либо выбросов - согласно вашему определению.
Если вы сгенерируете их, как в примере ниже, они будут удалены вашим кодом, как вы ожидаете.
df = (pd.DataFrame({'price': np.random.randint(0, 100000000, 50000),
'col_2':np.random.randint(0, 100000000, 50000)})
.append(pd.DataFrame({'price': np.random.randint(100000000, 200000000, 50),
'col_2':np.random.randint(0, 100000000, 50)}))
.reset_index(drop=True)
)