Сначала найдите среднее и стандартное значение:
>>> df.mean()
Height 188.8
Length 152.4
Width 41.0
dtype: float64
>>> df.std()
Height 85.442378
Length 85.454601
Width 31.230327
dtype: float64
Затем вы можете использовать условные выборки (обратите внимание, здесь я использовал квадратный корень df.std только потому, что здесь показаны некоторые результаты, это, вероятно,не то, что вы хотите, просто удалите np.sqrt
часть):
>>> df[df > df.mean() + 3*np.sqrt(df.std())]
Height Length Width
Index
1 NaN NaN NaN
2 NaN NaN 102.0
3 NaN NaN NaN
4 NaN NaN NaN
5 230.0 NaN 96.0
6 NaN NaN NaN
7 NaN NaN NaN
8 NaN 390.0 NaN
9 NaN NaN NaN
10 422.0 NaN NaN
>>> df[df < df.mean() - 3*np.sqrt(df.std())]
Height Length Width
Index
1 150.0 95.0 18.0
2 148.0 122.0 NaN
3 NaN NaN 16.0
4 155.0 NaN NaN
5 NaN 112.0 NaN
6 154.0 108.0 NaN
7 160.0 NaN 22.0
8 148.0 NaN NaN
9 159.0 NaN NaN
10 NaN NaN NaN