Вы можете определить выбросы, найдя строки, которые отличаются от среднего значения столбца более чем на 1,5 стандартных отклонения (или любого другого значения отсечения, которое вы выберете):
df['outliers'] = 0
df.loc[(df.shiper_RFQ - df.shiper_RFQ.mean()).abs() > 1.5*df.shiper_RFQ.std(), 'outliers'] = 1
print(df)
Supplier_ID shiper_RFQ outliers
0 2305 5000 0
1 2309 5200 0
2 2305 6500 0
3 2307 4500 0
4 2301 900 1
5 2302 10000 1
6 2306 4500 0
Тогда вы можетесохраните их в другом фрейме данных и удалите их из оригинала:
df2 = df[df.outliers == 1].reset_index(drop=True)
df = df[df.outliers == 0].reset_index(drop=True)
print(df2)
print(df)
Supplier_ID shiper_RFQ outliers
0 2301 900 1
1 2302 10000 1
Supplier_ID shiper_RFQ outliers
0 2305 5000 0
1 2309 5200 0
2 2305 6500 0
3 2307 4500 0
4 2306 4500 0