pandas nan判断_【跟着stackoverflow学Pandas】 删除带有NaN的行
How to drop rows of Pandas DataFrame whose value in certain columns is NaN - 删除带有NaN的行
在用 pandas 处理数据的时候,经常会遇到有 NaN 的行,不方便进行后续操作,那这种情况应该怎么处理呢?
数据准备
我们随机生成了10x3列的数据,然后针对某些数据赋值 NaN。
import pandas as pdimport numpy as npdf = pd.DataFrame(np.random.randn(10,3), columns=['col1', 'col2', 'col3'])
df.iloc[::2,0] = np.nandf.iloc[::4,1] = np.nandf.iloc[::3,2] = np.nanprint df
# col1 col2 col3# 0 NaN NaN NaN# 1 -0.498336 -0.960804 0.705309# 2 NaN -2.120032 2.123329# 3 0.791883 -0.283840 NaN# 4 NaN NaN -1.241788# 5 -0.399644 -0.968515 -1.509056# 6 NaN 0.897637 NaN# 7 1.826128 1.015091 -0.497022# 8 NaN NaN -1.889871# 9 0.379287 -1.762229 NaN
pandas.notnull
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.notnull.html
可以接受Series 或者 DataFrame 类型的数据
pandas.notnull 被设计用来取代 np.isfinite / numpy.isnan
pd.notnull(df['col1'])
# 0 False# 1 True# 2 False# 3 True# 4 False# 5 True# 6 False# 7 True# 8 False# 9 True# Name: col1, dtype: bool
print pd.notnull(df)
# col1 col2 col3# 0 False False False# 1 True True True# 2 False True True# 3 True True False# 4 False False True# 5 True True True# 6 False True False# 7 True True True# 8 False False True# 9 True True False
np.isfinite / numpy.isnan
np.isfinite 会对数据进行判断,如果是有限数据返回True。我们可以通过对不同列的bool值组合来满足我们的取值要求。
numpy.isnan 判断是否是NaN
np.isfinite(df['col1'])
# 1 True# 3 True# 5 True# 7 True# 9 True# Name: col1, dtype: bool
df1 = df[np.isfinite(df['col1'])]print df1
# col1 col2 col3# 1 -0.498336 -0.960804 0.705309# 3 0.791883 -0.283840 NaN# 5 -0.399644 -0.968515 -1.509056# 7 1.826128 1.015091 -0.497022# 9 0.379287 -1.762229 NaN
drop
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.dropna.html
drop 可以接受多个参数:
axis : {0 or ‘index’, 1 or ‘columns’}, or tuple/list thereofPass tuple or list to drop on multiple axeshow : {‘any’, ‘all’}any : if any NA values are present, drop that labelall : if all values are NA, drop that labelthresh : int, default Noneint value : require that many non-NA valuessubset : array-likeLabels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to includeinplace : boolean, default FalseIf True, do operation inplace and return None.
# 默认是删除有NaN的行print df.dropna()
# col1 col2 col3# 1 1.944899 -1.792510 -0.612904# 5 -0.609380 1.087689 -1.145582# 7 -2.045037 1.043837 0.429135
print df.dropna(how='all') #删除全部是NaN的行# col1 col2 col3# 1 1.944899 -1.792510 -0.612904# 2 NaN 0.780487 -1.239197# 3 -1.050320 -0.121033 NaN# 4 NaN NaN -0.537213# 5 -0.609380 1.087689 -1.145582# 6 NaN -0.721761 NaN# 7 -2.045037 1.043837 0.429135# 8 NaN NaN -0.096989# 9 1.514520 0.224193 NaN
更多的可以参考,drop的官方说明。
pandas nan判断_【跟着stackoverflow学Pandas】 删除带有NaN的行相关推荐
- pandas rolling方法_【干货】pandas相关工具包
未来更名:ChallengeHub 1 Pandas 介绍 Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出 ...
- python做外贸_跟着销售学python(3)---开发微信公平台(1)
跟着销售学python(3)--- 开发微信公共平台(1) 首先交代一下, 目前我的学习背景啊: 我自己是一个创业的外贸服务公司, 自己主要做销售,学python主要目的是为了工作上的帮助吧. 自己的 ...
- pandas修改数据类型_如何正确在pandas里使用inplace参数
在本篇中,我们来简单介绍一下inpalce参数以及使用. 在pandas 中 ,inplace 参数在很多函数中都会有,它的作用是:是否在原对象基础上进行修改 inplace = True:不创建 ...
- pandas合并数据集-【老鱼学pandas】
有两个数据集,我们想把他们的结果根据相同的列名或索引号之类的进行合并,有点类似SQL中的从两个表中选择出不同的记录并进行合并返回. 合并 首先准备数据: import pandas as pd imp ...
- python pandas for循环_高逼格使用Pandas加速代码,向for循环说拜拜!
原标题:高逼格使用Pandas加速代码,向for循环说拜拜! 作者:George Seif 编译:公众号翻译部 全网进行中··· 你为什么劝入/劝退Quant? 前言 使用Pandas datafra ...
- 先学python还是先学数据库_跟着销售学python8-微信平台初次见识数据库(6)
本来是计划跟着learn python the hard way ,继续下去, 不过中途补充一下,网页的基础知识吧,也不耽搁了. [摘录]:用来记下,之前不理解的 地方? 1.web.py 引入数据 ...
- JAVA复合判断_一起来学Java8(四)——复合Lambda
在一起来学Java8(二)--Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda. Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用La ...
- python项目策划书_跟着销售学python系列(1)--实践项目骨架(1)
暂时不对自己的背景做任何的交代, 为什么写这个系列, 参加YC培训课最大的总结, 就是别写别思考了. 以前的写的,慢慢搬家过来吧. 学习计划: ✅ learn python the hard w ...
- operate函数_跟着 redux 学 compose组合函数
▲ 点击上方蓝字关注我 ▲ 把你的心 我的心串一串 串一株幸运草 串一个同心圆 文 / 景朝霞 来源公号 / 朝霞的光影笔记 ID / zhaoxiajingjing 目录0 / 热热身1 / red ...
最新文章
- ubuntu 下root用户无法访问声音设备的解决方案
- CentOS 6.2安装
- 利用找因子来找方程解的个数
- GCPC2014 C Bounty Hunter
- js react根据几个颜色点计算区间任意数值对应颜色
- 第三章 汇编语言和汇编软件
- python实现学生成绩聚类分析_聚类分析Python实现
- 【9603】最大整数
- Basic--Java基本语法
- 无法更新标识列 wechatid_天津塘沽企业标识标牌设计制作安装的过程
- matlab多行注释的三种方法
- java获取method_从Method中获取完整类名和方法名
- Java基础案例4-8:模拟物流快递系统程序设计
- 物业设备与设施管理【2】
- VScode启动流程
- 若依框架获取和修改当前登录用户信息
- 【自学Python】Python IDLE使用
- 1.0.使用matplotlib模块简单绘图
- 网页播放视频没有进度条怎么可以实现倍速播放
- 算法分析与设计实验报告三——动态规划算法