发布时间:2024-01-15 10:00
df.isnull() # 查看空缺值,可以识别 null / None / Nan
df.isnull().any(axis=0) # 查看每行是否有空缺值
df.isnull().any(axis=1) # 查看每列是否有空缺值
df.isnull().sum() # 统计每行空缺值的个数
df.isnull().sum(axis=1) # 统计每列有空缺值的个数
df.isnull().sum().sum() # 统计整个df的缺失值
df[\'列名\'].isnull().sum(axis=0) # 统计某一列的缺失值
df[df.isnull().values==True] # 查看有缺失值的行,不去重
df[df.isnull().T.any()] # 查看有缺失值的行,去重
pandas.dropna()官方文档
DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
df.dropna(thresh=2)
df.dropna(subset=[\'Attr_B\',\'sum\'])
pandas.fillna()官方文档
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
# 全局填充
df.fillna(999)
# 按列填充
df[\'sum\']=df[\'sum\'].fillna(999)
# 按空值的下一行填充
df.fillna(method=\'bfill\',axis=0)
# 按空值的上一行填充
df.fillna(method=\'ffill\',axis=0)
# 按空值的后一列填充
df.fillna(method=\'bfill\',axis=1)
# 按空值的前一列填充
df.fillna(method=\'ffill\',axis=1)
sklearn.simpleImputer 官方文档
from sklearn.impute import SimpleImputer
# 取出缺失值所在列的数值,sklearn当中特征矩阵必须是二维才能传入 使用reshape(-1,1)升维
sums=df[\'sum\'].values.reshape(-1,1)
# 按平均值填充
imp_mean = SimpleImputer(missing_values=np.nan, strategy=\'mean\')
imp_mean=imp_mean.fit_transform(sums)
# 填充好的数据传回到 df[\'sum\']列
df[\'sum\']=imp_mean
# 平均值填充
imp_mean = SimpleImputer(missing_values=np.nan, strategy=\'mean\')
# 中值填充
imp_median = SimpleImputer(missing_values=np.nan, strategy=\'median\')
# 众数填充
imp_modes = SimpleImputer(missing_values=np.nan, strategy=\'most_frequent\')
# 常数填充
imp_modes = SimpleImputer(missing_values=np.nan, strategy=\'constant\',fill_value=0)
sklearn.impute.KNNImputer官方文档
from sklearn.impute import KNNImputer
sums=df[\'sum\'].values.reshape(-1,1)
imp_knn = KNNImputer(n_neighbors=2)
df[\'sum\']=imp_knn.fit_transform(sums)
参考来源
每天一点sklearn之SimpleImputer(9.19)
【机器学习】sklearn中使用k近邻来完成缺失值的填补(KNNImputer)
数据处理笔记6:缺失值填充
使用uniapp框架搭建浙里办微应用(单点登录、埋点、适老化、RPC网关)
走进“开源SDR实验室” 一起玩转GNU Radio:LimeSDR Source/Sink模块
[C/C++]详解STL容器7--红黑树的介绍及部分模拟实现
苹果icloud登录_如何在Windows电脑上使用苹果iCloud服务?
龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本
mysql和oracle默认排序的方法 - 不指定order by
深度卷积神经网络(AlexNet)与卷积神经网络(LeNet)的区别及其代码实现(可直接复制运行)
无需CORS,用nginx解决跨域问题,轻松实现低代码开发的前后端分离