IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> pandas+sklearn数据预处理之缺失值处理 -> 正文阅读

[人工智能]pandas+sklearn数据预处理之缺失值处理

1. 查找缺失值

在这里插入图片描述

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()] # 查看有缺失值的行,去重

对比
在这里插入图片描述
在这里插入图片描述

2. 删除空缺值

pandas.dropna()官方文档

DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

  • axis: 0表示行,1表示列
  • how: Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.
    • any: 当每行/列有空缺值时删除
    • all:当每行/列全为空缺值时删除
  • thresh: int, 保留至少 int 个非nan行
  • subset: list,在特定列缺失值处理
  • inplace: 是否修改原数据
df.dropna(thresh=2)

在这里插入图片描述

df.dropna(subset=['Attr_B','sum'])

在这里插入图片描述

3. 填充缺失值

  1. 使用其他类别标签、平均值或中值填充
  2. 使用最有可能的值填充:使用K近邻法填充

pandas.fillna()官方文档

DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)

  • value: 填充值
  • method: {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None
    • backfill/bfill: 用后一个值填充
    • pad/ffill: 用前一个值填充
  • axis: 0为按行,1为按列
  • limit: int, 填充int个空缺值
  • downcast:

在这里插入图片描述

按值填充

# 全局填充
df.fillna(999)
# 按列填充
df['sum']=df['sum'].fillna(999)

在这里插入图片描述在这里插入图片描述

按dataframe里的值填充

# 按空值的下一行填充
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填充缺失值

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)

使用KNN填充缺失值

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:缺失值填充

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-10 11:54:11  更:2022-05-10 11:57:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:22:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码