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))