pandas模块dropna数据清理删除NaN--python3
1、首先介绍dropna常用参数:
# DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
主要的2个参数:
#axis=0: 删除包含缺失值(NaN)的行
#axis=1: 删除包含缺失值(NaN)的列
# how=‘any’ :要有缺失值(NaN)出现删除
# how=‘all’: 所有的值都缺失(NaN)才删除
这两个要配合使用才好。
还有一个thresh参数
如果缺失值(NaN)的数量大于thresh,将删除

2、创建还有Nan的矩阵数据
df4 = pd.DataFrame(np.arange(16).reshape(4,4), columns = ['列1','列2','列3','列4'])print(df4)df4.loc[1,:] = np.nanprint(df4)df4.loc[:, '列2'] = np.nanprint(df4)


3、1)删除MAT中真正所有含NAN的行和列 全删。
# 只要有Nan 行列就删!
print(df4.dropna())
因为所有行列都含有Nan因此删光了


4、2)选择删除
2.1)# how: 与axis配合使用
how=‘any’ :只要有缺失值出现,就删除
print(df4.dropna(axis=0, how='any'))
2.2)# how=‘all’: 所有的值都缺失,才删除
print(df4.dropna(axis=0, how='all'))
对比连个结果 一个都删=空 一个还有数据!


5、3) 一个删除列的例子
# /删除列print(df4.dropna(axis=1, how='all'))print("---------------")print(df4.dropna(axis=1, how='any'))
结果也不同 说 python的pandas对缺失值处理很灵活。


6、4)缺失值的数量大于thresh,将删除
print("-----缺失值的数量大于thresh,将删除---------")# 如果缺失值的数量大于thresh,将删除print(df4.dropna(axis=1, thresh=3))print(df4.dropna(axis=1, thresh=5))

