看下面这张图片,其中有缺失值NaN,处理数据时需要先对缺失值进行处理

1 .如何处理缺失值nan

  • 获取缺失值的标记方式(NaN或者其他标记方式)

  • 如果缺失值的标记方式是NaN

    • 判断数据中是否包含NaN:

      • pd.isnull(df),   【有缺失值时返回True,否则False】
      • pd.notnull(df)    【与isnull相反】
    • 存在缺失值nan:

      • 1、删除存在缺失值的:dropna(axis='rows')

        • 注:不会修改原数据,需要接受返回值
      • 2、替换缺失值:fillna(value, inplace=True)

        • value:替换成的值
        • inplace:True:会修改原数据,False:不替换修改原数据,生成新的对象
  • 如果缺失值没有使用NaN标记,比如使用"?"

    • 先替换‘?’为np.nan,然后继续处理

2. 电影数据的缺失值处理

  • 电影数据文件获取
# 读取电影数据
movie = pd.read_csv("./data/IMDB-Movie-Data.csv")

2.1 判断缺失值是否存在

  • pd.notnull()
pd.notnull(movie)
Rank    Title    Genre    Description    Director    Actors    Year    Runtime (Minutes)    Rating    Votes    Revenue (Millions)    Metascore
0    True    True    True    True    True    True    True    True    True    True    True    True
1    True    True    True    True    True    True    True    True    True    True    True    True
2    True    True    True    True    True    True    True    True    True    True    True    True
3    True    True    True    True    True    True    True    True    True    True    True    True
4    True    True    True    True    True    True    True    True    True    True    True    True
5    True    True    True    True    True    True    True    True    True    True    True    True
6    True    True    True    True    True    True    True    True    True    True    True    True
7    True    True    True    True    True    True    True    True    True    True    False    True

  • np.all(pd.notnull(movie))
    

  • pd.isnull()

2.2 存在缺失值nan,并且是np.nan

  • 1、删除

pandas删除缺失值,使用dropna的前提是,缺失值的类型必须是np.nan

# 不修改原数据
movie.dropna()   #  有缺失值的那一行将会被删除# 可以定义新的变量接受或者用原来的变量名
data = movie.dropna()
  • 2、替换缺失值
# 替换存在缺失值的样本的两列
# 替换填充平均值,中位数
# movie['Revenue (Millions)'].fillna(movie['Revenue (Millions)'].mean(), inplace=True)

替换所有缺失值:

for i in movie.columns:if np.all(pd.notnull(movie[i])) == False:print(i)movie[i].fillna(movie[i].mean(), inplace=True)

2.3 不是缺失值nan,有默认标记的

数据是这样的:

wis = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data")

以上数据在读取时,可能会报如下错误:

URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:833)>

解决办法:

# 全局取消证书验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

处理思路分析:

  • 1、先替换‘?’为np.nan

    • df.replace(to_replace=, value=)

      • to_replace:替换前的值
      • value:替换后的值
# 把一些其它值标记的缺失值,替换成np.nan
wis = wis.replace(to_replace='?', value=np.nan)

  • 2、进行缺失值的处理
# 删除
wis = wis.dropna()

pandas对缺失值NaN处理相关推荐

  1. Python pandas 空值缺失值(NaN)处理填充替换判断删除含缺失空值数据行

    缺失值处理 判断 datats_code symbol name area industry list_date 0 000001.SZ 1.0 平安银行 深圳 银行 19910403 1 00000 ...

  2. 05_Pandas删除,替换并提取其中的缺失值NaN(dropna,fillna,isnull)

    05_Pandas删除,替换并提取其中的缺失值NaN(dropna,fillna,isnull) 例如,当使用pandas读取csv文件时,如果元素为空,则将其视为缺失值NaN(非数字). 使用dro ...

  3. python pandas 如何找到NaN、缺失值或者某些元素的索引名称以及位置,np.where的使用

    我们在处理数据的时候,经常需要检查数据的质量,也需要知道出问题的数据在哪个位置.我找了很久,也尝试了很多办法,都没能找到一种非常直接的函数,本文所要介绍的是一种我认为比较方便的方法:np.where( ...

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

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

  5. python替换缺失值_详解Pandas 处理缺失值指令大全

    前言 运用pandas 库对所得到的数据进行数据清洗,复习一下相关的知识. 1 数据清洗 1.1 处理缺失数据 对于数值型数据,分为缺失值(NAN)和非缺失值,对于缺失值的检测,可以通过Python中 ...

  6. python查询缺失值所在位置_Python Pandas找到缺失值的位置方法

    问题描述: python pandas判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵,对于庞大的数据dataframe,很难一眼看出来哪个数据缺失,一共有多少个 ...

  7. Python机器学习实战:如何用Pandas处理缺失值

    机器学习实战:这里没有艰深晦涩的数学理论,我们将用简单的案例和大量的示例代码,向大家介绍机器学习的核心概念.我们的目标是教会大家用Python构建机器学习模型,解决现实世界的难题. 现实和教程最大的区 ...

  8. pandas判断缺失值的办法

    参考这篇文章: https://blog.csdn.net/u012387178/article/details/52571725 python pandas判断缺失值一般采用 isnull(),然而 ...

  9. python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行。

    python pandas DataFrame 替换 NaN 值 和 删除 NaN 所在的行. import pandas as pd import numpy as np df1 = pd.Data ...

最新文章

  1. 推荐一套开源通用后台管理系统
  2. 当null检查非常失败时
  3. sql设置id自动增长_JDBC进阶(一):批处理与获取自增长列的值
  4. ubuntu 修该rm命令使删除文件到回收站
  5. C语言读取图像像素坐标,求指导,如何用c语言实现读取*.raw格式图像
  6. JS执行Promise
  7. 1.极限——ε-δ例子_7
  8. scrapy_redis 相关: 将 jobdir 保存的爬虫进度转移到 Redis
  9. 68. 使用Apache的rewrite技术
  10. 【C语言开源项目】盘点 GitHub 上不错的 4 个C语言项目
  11. 常用的公共数据集(二)
  12. VS2008当前页面脚本发生错误
  13. 目前有哪些好用的测试管理工具?
  14. 进程间通讯 rcf应用简介
  15. 2018 谷歌 Google I/O 简介 总结
  16. 密码库LibTomCrypt学习记录——(2.25)分组密码算法的工作模式——EAX加密认证模式
  17. Go学习笔记 -- 异常处理
  18. HTTPS详解及HTTPS实验
  19. rtx服务器设置 文件,rtx 服务器 文件传输 配置
  20. openlayers6【十】EPSG:3857和EPSG:4326区别详解

热门文章

  1. 联手中科大、浙大、华科大等高校,阿里研发4项最新AI安全技术
  2. 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言449-456条如下:
  3. 训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……...
  4. 数十名工程师作战5天,阿里达摩院连夜研发智能疫情机器人
  5. 阿里团队最新实践:如何解决大规模分类问题?
  6. 599元的智能视频音箱发布,百度准备补贴几个亿?
  7. AI一分钟 | 万达网科裁员95%高达5000余人,被爆下一步将转型AI; 英伟达放话了:研究人员放心用,不更新驱动就没啥事儿
  8. 我亲手调教的AI,竟然开始歧视我了!
  9. Mysql 宕机引发索引丢失很可怕,文件 IO 中如何保证掉电不丢失数据?
  10. RabbitMQ 延迟队列,太实用了!