import numpy as np
defreplace_nan(t):for i inrange(t.shape[1]):
t_col=t[:,i]
nan_num=np.count_nonzero(t_col != t_col)if nan_num !=0:
no_have_nan=t_col[t_col==t_col]
t_col[np.isnan(t_col)]=no_have_nan.mean()return t
t = np.arange(12).reshape((3,4)).astype("float")
t[1,2:]= np.nan
print(t)
replace_nan(t)print(t)
代码1(pandas):
In [64]: t2
Out[64]:
age name tel
032.0 xiaowang 10086.01 NaN xiaohong 10000.0222.0 xiaowang NaN
In [67]: t2.fillna(t2.mean())
Out[67]:
age name tel
032.0 xiaowang 10086.0127.0 xiaohong 10000.0222.0 xiaowang 10043.0# 你也可以只处理age这一列
t2["age"]=t2["age"].fillna(t2["age"].mean())