常见的数据缺失填充方式分为很多种,比如删除法、均值法、回归法、KNN、MICE、EM等,下面这篇文章主要给大家介绍了关于python缺失值填充方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下!
1.找到缺失值
导入数据集
df=pd.read_csv("nba.csv") df.head(10)
替换异常值(数据集中异常值为“-”)
把数据集中的异常值用“NaN”替换
# 将空值形式的缺失值转换成可识别的类型 data = data.replace('-', np.NaN)
2.计算缺失值的数量
用# isnull() 函数,确认各列是否有缺失值1.
null_all = df.isnull().sum() print(null_all)
.sum();表示可以显示各个列的缺失值数量。
null_all = df.isnull.any(axis=1)#表示那些行具有缺失值,
.any()表示只要按行或列计算,有缺失值就算入.all()表示所在行或列全为缺失值才计入.sum()表示计算列缺失值时,一列有多个缺失值,同理,计算行缺失,计算有多少个行。
3.处理缺失值
3.1:df.dropna():直接删除行列
df表示数据集的名称
- dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
括号内上述参数都是函数默认。
axis=0:表示对行进行删除操作,axis=1:对列删除进行操作how=‘any’:表示维度 存在“缺失值”就删除相应行/列操作;how=‘all’:进行相关行或列删除操作时,只有所有维度缺失才删除。thresh=None:等于几表示有几个缺失值存在才会删除所在的行或列。inplace=False:表示对原来的数据集不进行操作,True时表示对原来的数据集也进行操作。
3.2:df.fillna()填充缺失值
- fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
axis : {0 or ‘index’, 1 or ‘columns’}
method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}pad’, ‘ffill:将前面的值填充于后面位置。backfill’, 'bfill:表示将后面的值填充于前面位置。
data.fillna(data.mean())#平均值填充 data.fillna(data.median())#中位数填充
3.3:KNN填充
from sklearn.impute import KNNImputer imputer = KNNImputer(n_neighbors=4)#邻居样本求平均数 df1=imputer.fit_transform(df)
4.查看数据集的末尾
df.tail(10)
查看末尾10行
THE END
喜欢就支持一下吧