pandas DataFrame 缺失值处理 (数据预处理)

创建DataFrame数据样例

import pandas as pd
import numpy as np df = pd.DataFrame(np.random.rand(3,3),index=[1,3,4,7,9],columns=['a','b','c'])
df = df.reindex(index = range(5))
df

输出结果如下:

查看各字段是否存在缺失值的几种方法

#查看df中各字段是否存在缺失值
print(df.isna().any())
print("------------")
print(df.isnull().any())
print("------------")
print(np.isnan(df).any())

三种方法输出结果都一样如下:

还有一种我更喜欢的方法: DataFrame 的 info() 方法:

#用info()方法查看非空值情况  (推荐)
df.info()

输出结果如下:

输出结果主要看框出来的两部分,从结果可以看出,DataFrame共有5条数据,a、b、c三个字段中的非空数据都只有三个,因此可以判断出每个字段都存在缺失值。

缺失值的处理方法

  • 方法一,用dropna() 方法直接丢弃含有缺失值的数据:
test = df.dropna()
test


可以看到缺失值含有缺失值的数据被直接丢弃了,在真实的处理任务中,如果缺失值较少,整体数据量又很大时,直接丢弃缺失值对整体的影响不大。

  • 方法二,填充法。可以用某些数值来填充缺失值,如指定用数值0填充,或者是更常用的用前后值填充、均值填充、众数填充等。

用前后值填充:

print(df.fillna(method='ffill'))#用前一个值填充
print(df.fillna(method='backfill'))#用后一个值填充


用均值填充:

d = pd.DataFrame(np.arange(9).reshape(3,3),index = [0,1,3])
d = d.reindex(index = range(5))
print(d)
print(d.fillna(d.mean()))#每列的均值填充

填充前:

填充后:

pandas DataFrame 缺失值处理(数据预处理)相关推荐

  1. pandas dataframe缺失值(np.nan)处理:识别缺失情况、删除、0值填补、均值填补、中位数填补、加缺失标签、插值填充详解及实例

    pandas dataframe缺失值(np.nan)处理:识别缺失情况.删除.0值填补.均值填补.中位数填补.加缺失标签.插值填充详解及实例 isnull().natna().isna().fill ...

  2. 在Pandas DataFrame中重塑数据

    目录 介绍 透视Pandas DataFrame 在Pandas DataFrame中对数据进行分组 总结 使用我们的数据集后,我们将快速查看可以使用流行的Python库从数据集轻松创建的可视化,然后 ...

  3. 清理Pandas DataFrame中的数据

    目录 介绍 清理按键 查找不一致的数据 总结 确保整个DataFrame一致是很重要的.这包括确保数据的类型正确,消除不一致之处并标准化值. 下载CSV和数据库文件-127.8 KB 下载源代码122 ...

  4. 蠎周刊418 ~Pandas DataFrame: 使处理数据令人愉快

    原文: PyCoder's Weekly - Issue #418 200429 Zoom.Quiet(大妈) 用时 42 分钟 完成快译 200429 Zoom.Quiet(大妈) 用时 37 分钟 ...

  5. pandas 第一行_Pandas数据预处理相关经验

    在这里记录一些平常用的pandas操作以供参考. 学习相关操作的最好方法还是找官方的文档最好,否则就会产生百度1小时,查文档3分钟的尴尬处境,之前为了找python里类似 in 的操作搜了半天资料也没 ...

  6. python预处理缺失值_数据预处理 第3篇:数据预处理(使用插补法处理缺失值)...

    插补法可以在一定程度上减少偏差,常用的插补法是热卡插补.拟合插补和多重插补.拟合插补,要求变量间存在强的相关性:多重插补(MCMC法),是在高缺失率下的首选插补方法,优点是考虑了缺失值的不确定性. 一 ...

  7. dataframe 修改某列_python dataframe操作大全数据预处理过程(dataframe、md5)

    hive表的特征选择,不同表之间的join 训练数据.测试数据的分开保存 使用pandas进行数据处理 显示所有列:pd.set_option('display.max_columns', None) ...

  8. dataframe修改列名_python dataframe操作大全数据预处理过程(dataframe、md5)

    hive表的特征选择,不同表之间的join 训练数据.测试数据的分开保存 使用pandas进行数据处理 显示所有列:pd.set_option('display.max_columns', None) ...

  9. python异常值替换为缺失值_数据预处理之异常值(python)

    除了缺失值外,异常值也是数据中常有的噪音,但并非异常值都需要被处理,异常值出现的原因有很多,结合实际业务,他们往往可以被分为"真异常"和"假异常". 有时特定业 ...

最新文章

  1. 几种常用的C#排序方法简介
  2. JDBC-day01
  3. 你最喜欢的 iOS 开发的技巧和提示有哪些?
  4. mysql网络安装教程_详细教程--MySQL的安装与配置
  5. PHP的str_split分割字符串成数组
  6. 【数据结构与算法】之深入解析“删除链表的倒数第N个结点”的求解思路与算法示例
  7. ArrayBlockingQueue原理分析
  8. 现代制造工程笔记04-精密超精密加工和特种加工(主要掌握加工原理加工条件)
  9. 巨人网络:已组建研发团队对元宇宙游戏开展自研探索
  10. 操作指令详解_爱码小士丨 APP稳定性测试(附视频详解)
  11. 如何阻止分布式拒绝服务***
  12. 转 windows查看端口占用命令
  13. Java对象的强引用、软引用、弱引用和虚引用 笔记
  14. opencv3计算机视觉+Python(四)
  15. Java编程题——判断年份是否为闰年
  16. c语言转化音乐格式转换器安卓版,音频提取格式转换APP
  17. 软考架构设计师论文(微服务)
  18. MES系统质量追溯功能,到底在追什么?
  19. lightdm 循环登录问题
  20. 水果忍者(数学 叉积)

热门文章

  1. 矿山井下IT配电系统绝缘监测研究及应用
  2. 阿里安全归零实验室首度揭秘真实的“黄牛软件江湖”
  3. BZOJ 4338 BJOI2015 糖果
  4. 飞凌嵌入式RK3568J核心板助力工业机器人产业迈向高质量发展新阶段
  5. win7计算机加载项,详细教您win7禁用ie加载项
  6. SAP那些事-职业篇-19-论ERP实施效果的评估
  7. 初识Seata(二)
  8. linux:vi和vim的使用
  9. PHP关于open_basedir错误的解决方案
  10. leetcode 1861. Rotating the Box