python根据文遵循 3𝜎原则(随机变量偏离超过 3 倍标准差的可能性不足 1%, 因此可以通过偏离均值的标准差倍数来反映数据是否合理),找出一列数据中异常值个数
时间: 2024-09-14 07:08:58 浏览: 43
在Python中,要找出一列数据中的异常值(依据3σ原则),你可以按照以下步骤操作:
1. 首先,你需要导入必要的库,如NumPy用于计算统计量,Pandas用于数据处理。
```python
import numpy as np
import pandas as pd
```
2. 加载或创建你的数据集,并将其转换成DataFrame格式,方便操作。
```python
data = pd.read_csv('your_data.csv') # 如果是CSV文件,或直接使用data = pd.Series(your_data)
```
3. 计算数据的平均值(mean)和标准差(std)。`std`函数会返回每个元素的标准差,对于整个列,可以使用`.std()`。
```python
mean = data.mean()
std_dev = data.std()
```
4. 根据3σ原则,设置阈值。任何数值如果大于平均值加上3倍标准差(upper_bound),或者小于平均值减去3倍标准差(lower_bound),都被视为异常值。
```python
upper_bound = mean + 3 * std_dev
lower_bound = mean - 3 * std_dev
```
5. 使用`data.between(lower_bound, upper_bound)`检查哪些数据点位于这个范围内,结果将是一个布尔Series。然后通过`~`运算符获取不在范围内的元素,即异常值。
```python
outliers = ~data.between(lower_bound, upper_bound)
```
6. 最后,计算有多少个异常值,可以用`outliers.sum()`得到。
```python
num_outliers = outliers.sum()
```
这样就得到了数据集中基于3σ原则的异常值个数。
阅读全文