dataframe删除异常值
时间: 2023-11-18 11:06:53 浏览: 110
清理数据异常
好的,针对您的问题,我可以给出以下代码实现删除 DataFrame 中的异常值。
```python
import pandas as pd
import numpy as np
# 构造示例数据
data = {'A':[1, 2, 3, 4, 5], 'B':[3, 5, 7, 9, 0], 'C':[2, 4, np.nan, 1, 5]}
df = pd.DataFrame(data)
# 删除值为 NaN 的行
df = df.dropna()
# 利用 describe() 函数得到数据的下四分位数 q1 和上四分位数 q3
q1 = df.describe().loc['25%']
q3 = df.describe().loc['75%']
# 计算四分位距
iqr = q3 - q1
# 设置异常值的下限和上限
lower_bound = q1 - 1.5 * iqr
upper_bound = q3 + 1.5 * iqr
# 根据设定的下限和上限删除异常值
for col in df.columns:
df = df[(df[col] >= lower_bound[col]) & (df[col] <= upper_bound[col])]
```
以上代码先删除值为 NaN 的行,然后利用 `describe()` 函数得到数据的下四分位数 `q1` 和上四分位数 `q3`,以及四分位距 `iqr`。接着根据设定的下限和上限删除异常值,保留正常值。
切记,以上代码仅供参考,具体实现还需要按照您的数据特点来调整。
阅读全文