0. 写在前面的话
用"=="不能进行是否为缺失值(nan)的判定,所以请使用np.isnan()或math.isnan()来判定是否为缺少值(nan)。
np.isnan()也可以用来判定ndarray中每个元素是否判为缺失值NaN。
1. nan替换
a.replace(-9999,np.nan,inplace=True) # 将-9999替换成nan ## pd.DataFrame
a[a == -9999] = np.nan # -9999替换成nan
## 使用 np.genfromtxt() 读取csv时,可以用参数filling_values来指定用任意值填充缺失的部分
a_fill = np.genfromtxt('./data/12/sample_nan.csv', delimiter=',', filling_values=0) #替换成0
np.nan_to_num(a) # 将array里的nan更改成0,生成新数列。
np.nan_to_num(a, copy=False) # 将a里的nan直接更改为0
np.nan_to_num(a, nan=-1) # 换成其它数字
np.nan_to_num(a, nan=np.nanmean(a)) # 换成平均(忽略nan)
# 或
a[np.isnan(a)] = np.nanmean(a)
2. 生成全是nan的列表
a = [np.nan for index in range(5)]
#输出:[nan,nan,nan,nan,nan]
就酱 ;)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)