# 查看哪些值缺失
nan_all = df.isnull() # 获得所有数据框中的N值
print (nan_all) # 打印输出
# 查看哪些列缺失
nan_col1 = df.isnull().any() # 列出至少有一个元素含有缺失值的列
nan_col2 = df.isnull().all() # 列出全部元素含有缺失值的列
print (nan_col1) # 打印输出
print (nan_col2) # 打印输出
# 丢弃缺失值
df2 = df.dropna() # 直接丢弃含有NA的行记录
print (df2) # 打印输出
# 使用sklearn将缺失值替换为特定值
nan_model = Imputer(missing_values='NaN', strategy='mean', axis=0) # 建立替
换规则:将值为Nan的缺失值用均值做替换
nan_result = nan_model.fit_transform(df) # 应用模型规则
print (nan_result) # 打印输出
#使用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) # 打印输出