import pandas as pd
import numpy as np '''
有时候我们导入或处理数据, 会产生一些空的或者是 NaN 数据,如何删除或者是填补这些 NaN 数据就是我们今天所要提到的内容.
建立了一个6X4的矩阵数据并且把两个位置置为空.
'''
dates = pd.date_range('20130101', periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan
"""
A B C D
2013-01-01 0 NaN 2.0 3
2013-01-02 4 5.0 NaN 7
2013-01-03 8 9.0 10.0 11
2013-01-04 12 13.0 14.0 15
2013-01-05 16 17.0 18.0 19
2013-01-06 20 21.0 22.0 23
"""
'''
pd.dropna() 去掉 如果想直接去掉有 NaN 的行或列, 可以使用 dropna
'''
df.dropna(
axis=0, # 0: 对行进行操作; 1: 对列进行操作
how='any' # 'any': 只要存在 NaN 就 drop 掉; 'all': 必须全部是 NaN 才 drop
)
"""
A B C D
2013-01-03 8 9.0 10.0 11
2013-01-04 12 13.0 14.0 15
2013-01-05 16 17.0 18.0 19
2013-01-06 20 21.0 22.0 23
""" '''
pd.fillna(value=) 代替
如果是将 NaN 的值用其他值代替, 比如代替成 0:
'''
df.fillna(value=0)
"""
A B C D
2013-01-01 0 0.0 2.0 3
2013-01-02 4 5.0 0.0 7
2013-01-03 8 9.0 10.0 11
2013-01-04 12 13.0 14.0 15
2013-01-05 16 17.0 18.0 19
2013-01-06 20 21.0 22.0 23
""" # pd.isnull()
#
# 判断是否有缺失数据 NaN, 为 True 表示缺失数据: df.isnull() #这个是返回一个dateframe
"""
A B C D
2013-01-01 False True False False
2013-01-02 False False True False
2013-01-03 False False False False
2013-01-04 False False False False
2013-01-05 False False False False
2013-01-06 False False False False
""" # 检测在数据中是否存在 NaN, 如果存在就返回 True:
#np.any()是概括
# np.any(df.isnull()) == True
# True
df.dropna(   
axis=0, # 0: 对行进行操作; 1: 对列进行操作
how='any' # 'any': 只要存在 NaN 就 drop 掉; 'all': 必须全部是 NaN 才 drop
)

   去掉有空值的行或者列

dateframe.fillna(value= ) 替代控制为value的值

dateframe.isnull() 这个返回的是一个dateframe 里面的只有false,true 当存在na的时候就是true

np.any(dateframe.isnull() )  判断这个dateframe是否有空值

出处:https://morvanzhou.github.io/tutorials/data-manipulation/np-pd/3-4-pd-nan/

最新文章

  1. .net core快速上手
  2. mySql 注入攻击
  3. 常用的SQL分页
  4. 敏捷软件开发:原则、模式与实践——第8章 SRP:单一职责原则
  5. 给定a、b两个文件,各存放50亿个url,每个url各占用64字节,内存限制是4G,如何找出a、b文件共同的url?
  6. 微博MySQL优化之路--dockone微信群分享
  7. Java虚拟机(JVM)中的内存设置详解
  8. 第十二篇 Integration Services:高级日志记录
  9. JNDI学习总结(二)——Tomcat下使用C3P0配置JNDI数据源
  10. CentOS7上LNMP安装包一步搭建LNMP环境
  11. 英语-TOEFL和GRE复习计划与资料
  12. POJ1192最优连通子串----树形dp
  13. 今天遇到一个关于栈溢出的问题StackOverflowError
  14. windows 中java开发环境搭建
  15. Windows Docker 使用笔记
  16. C#开源项目大全
  17. A1075. PAT Judge
  18. (zhuan) Notes on Representation Learning
  19. Visual Studio 2008 安装失败(“Web 创作组件”无法安装)(转)
  20. 如何通过cmd命令进入到某个硬盘的文件夹

热门文章

  1. 类虚拟机软件CrossOver是什么?它的优势在哪里?
  2. CLH lock queue的原理解释及Java实现
  3. 一个定时任务管理器,基于Go语言和beego框架开发
  4. H5 ,Css实现了你的logo
  5. Linux(Ubuntu16.04)下的MediaWiki的部署启动
  6. Alpha冲刺-第五次冲刺笔记
  7. OD断点操作
  8. JZOJ2020年8月14日提高组反思
  9. 将Shiny APP搭建为独立的桌面可执行程序 - Deploying R shiny app as a standalone application
  10. 74CMS3.0储存型XSS漏洞代码审计