筛选异常值的要使用PythonGrubbs' Test方法分别筛选油箱文件中的OILTEMPER和LOADFACTOR两列数据中的异常数据并显示出来
时间: 2024-09-14 15:12:42 浏览: 66
Grubbs' Test是一种统计方法,用于检测一组数据中的异常值(也称为离群点)。这种测试假设数据是正态分布的,并且用于识别单个异常值。Python中可以使用`scipy`库中的`grubbs_test`函数来进行Grubbs' Test。以下是一个简单的例子,展示了如何对油箱文件中的'OILTEMPER'和'LOADFACTOR'两列数据进行Grubbs' Test,并筛选出异常值。
```python
import pandas as pd
from scipy import stats
# 假设df是已经加载的油箱文件数据,数据格式为DataFrame,列名为'OILTEMPER'和'LOADFACTOR'
# 请先自行加载数据并确保列名正确
# 示例数据
data = {
'OILTEMPER': [120, 122, 121, 135, 121, 122, 180], # 示例数据,实际应用中应该是从文件读取
'LOADFACTOR': [0.8, 0.81, 0.82, 0.83, 0.90, 0.85, 0.87] # 示例数据
}
df = pd.DataFrame(data)
# 进行Grubbs Test
def grubbs_test(column):
# 计算Grubbs' Test的统计量和临界值
stat, p_value = stats.gaussian_grubbs_test(column)
# 判断是否是异常值
if p_value < 0.05: # 通常取显著性水平α为0.05
print(f"在列'{column.name}'中发现异常值: {column[np.argmax(column)]}")
else:
print(f"在列'{column.name}'中未发现异常值")
# 对每一列进行Grubbs' Test
for col in ['OILTEMPER', 'LOADFACTOR']:
grubbs_test(df[col])
```
在上面的代码中,我们首先导入了必要的库,并创建了一个包含示例数据的DataFrame。然后,我们定义了一个`grubbs_test`函数来执行Grubbs' Test,并打印出异常值。在实际应用中,您需要替换示例数据为实际的油箱文件数据。
需要注意的是,Grubbs' Test一次只能检测一个最极端的离群点,所以如果怀疑存在多个异常值,需要多次重复测试,每次排除一个离群点后再进行下一次测试。
阅读全文