箱型图介绍看链接:
Python异常数据处理——箱型图分析
一下Python是使用箱型图找到异常值并用线性插值把剔除异常后的缺失填充上。
核心代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| import pandas as pd
def wash_data(df: pd.DataFrame): """箱型图法""" q1 = df.quantile(0.25) q3 = df.quantile(0.75) iqr = q3 - q1 mi = q1 - 1.5 * iqr ma = q3 + 1.5 * iqr data_c = df[(df >= mi) & (df <= ma)] return data_c.interpolate().bfill()
|
测试代码
1 2 3 4 5 6 7 8 9 10
| import pandas as pd import numpy as np
if __name__ == '__main__': df = pd.DataFrame(data=np.random.rand(10, 2)) df[0][1] = 100 df[0][2] = 99 print(df) washedDf = wash_data(df) print(washedDf)
|
输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| 0 1 0 0.385158 0.469756 1 100.000000 0.090029 2 99.000000 0.807008 3 0.832849 0.672141 4 0.965382 0.847540 5 0.275084 0.003218 6 0.366026 0.211611 7 0.462773 0.226748 8 0.244522 0.916068 9 0.906602 0.029235 0 1 0 0.385158 0.469756 1 0.534389 0.090029 2 0.683619 0.807008 3 0.832849 0.672141 4 0.965382 0.847540 5 0.275084 0.003218 6 0.366026 0.211611 7 0.462773 0.226748 8 0.244522 0.916068 9 0.906602 0.029235
进程已结束,退出代码为 0
|