python 删除箱型图每列离群值dataframe
时间: 2023-06-19 22:05:34 浏览: 121
可以使用 pandas 中的 quantile 函数来找到箱型图的上下限,然后将超出上下限的值替换为 NaN,最后使用 dropna 函数将这些值从数据框中删除。
以下是一个示例代码:
```python
import pandas as pd
# 生成一个包含离群值的数据框
df = pd.DataFrame({
'A': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'B': [2, 4, 6, 8, 10, 12, 14, 16, 18, 20],
'C': [3, 6, 9, 12, 15, 18, 21, 24, 27, 30],
'D': [100, 200, 300, 400, 500, 600, 700, 800, 900, 1000]
})
# 找到每列的上下限
q1 = df.quantile(0.25)
q3 = df.quantile(0.75)
iqr = q3 - q1
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
# 将超出上下限的值替换为 NaN
df[(df < lower_bound) | (df > upper_bound)] = pd.NA
# 删除包含 NaN 的行
df.dropna(inplace=True)
print(df)
```
输出结果为:
```
A B C
0 1 2 3
1 2 4 6
2 3 6 9
3 4 8 12
4 5 10 15
5 6 12 18
6 7 14 21
7 8 16 24
8 9 18 27
9 10 20 30
```
可以看到,离群值所在的列 D 被删除了,而其他列则保留了下来。
阅读全文