有关异常值的确定有很多规则和方法,这里使用Z标准化得到的阈
值作为判断标准:当标准化后的得分超过阈值则为异常。完整代码如
下:
import pandas as pd # 导入Pandas库
# 生成异常数据
df = pd.DataFrame({'col1': [1, 120, 3, 5, 2, 12, 13],
'col2': [12, 17, 31, 53, 22, 32, 43]})
print (df) # 打印输出
# 通过Z-Score方法判断异常值
df_zscore = df.copy() # 复制一个用来存储Z-score得分的数据框
cols = df.columns # 获得数据框的列名
for col in cols: # 循环读取每列
df_col = df[col] # 得到每列的值
z_score = (df_col - df_col.mean()) / df_col.std() # 计算每列的Z-score得分
df_zscore[col] = z_score.abs() > 2.2 # 判断Z-score得分是否大于2.2,如果是
则为True,否则为False
print (df_zscore) # 打印输出
示例代码用空行分为3个部分:
第一部分导入本例需要的Pandas库。
第二部分生成异常数据。直接通过DataFrame创建一个7行2列的数
据框。
第三部分为缺失值判断过程。本过程中,先通过df.copy()复制一
个原始数据框的副本用来存储Z-Score标准化后的得分,再通过
df.columns获得原始数据框的列名,接着通过循环来判断每一列中的异
常值。在判断逻辑中,对每一列的数据使用自定义的方法做Z-Score值
标准化得分计算,然后跟阈值2.2做比较&#x