将缺失值用均值替换

# 将nan值替换成每列均值
arr6 = np.arange(36, dtype="float").reshape(6, 6)
print(arr6)

# 将部分值修改成np.nan
arr6[3, 2:] = np.nan
print(arr6)

# 将np.nan的值替换成该列的均值
num_col = arr6.shape[1]
print(num_col)

for i in range(num_col):

    # 获取当前列
    now_col = arr6[:, i]
    # print(now_col)

    # 判断该列是否存在np.nan
    num = np.count_nonzero(now_col != now_col)
    if num != 0:
        # 获取非nan的值
        now_col_not_nan = now_col[now_col == now_col]
        # print(now_col_not_nan)
        # 将nan的值替换
        now_col[now_col!=now_col] = np.mean(now_col_not_nan)
print(arr6)

  

posted on 2020-03-17 18:22  zl666张良  阅读(966)  评论(0)    收藏  举报