python 找到箱型图每列数据异常值并用均值替换
时间: 2024-05-10 13:15:32 浏览: 123
首先,你可以使用 pandas 库读取数据集并绘制箱型图,找出每列数据的异常值。假设你的数据集为 `data`,可以使用以下代码绘制箱型图:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取数据集
data = pd.read_csv('data.csv')
# 绘制箱型图
data.boxplot()
plt.show()
```
接下来,你可以使用 numpy 库计算每列数据的上下四分位数和异常值边界。在此,我们假设异常值的边界是上下四分位数之外的 1.5 倍标准差。然后,你可以将每个异常值替换为该列的均值。
```python
# 计算上下四分位数和异常值边界
Q1 = data.quantile(0.25)
Q3 = data.quantile(0.75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
# 替换异常值为均值
for col in data.columns:
is_outlier = (data[col] < lower_bound[col]) | (data[col] > upper_bound[col])
if is_outlier.any():
data.loc[is_outlier, col] = np.mean(data[col])
```
最后,你可以使用 pandas 库将修改后的数据集保存到文件中。
```python
# 保存修改后的数据集
data.to_csv('data_cleaned.csv', index=False)
```
阅读全文