pandas中的空值处理
1.空值
1.1 有两种丢失数据:
- None: Python自带的数据类型 不能参与到任何计算中
- np.nan: float类型 能参与计算,但结果总是nan
# None+2 # 报错
# np.nan + 2 # 值仍然是nan
1.2 np.nan(NaN)
数组直接运算会得到nan,但可以使用np.nansum()函数来计算nan,此时视nan为0。
ndarr = np.array([1,2,3,np.nan])
np.sum(ndarr)
np.nansum(ndarr)
Series和DataForm可以直接处理nan
s1 = Series([1,2,3,np.nan])
s1 0 1.0
1 2.0
2 3.0
3 NaN
dtype: float64 s1.sum()
6.0
df1 = DataFrame([1,2,3,np.nan])
df1

df1.sum()
0 6.0
dtype: float64
1.3 pandas中的None与NaN
s1 = Series([1,2,3,np.nan,None]) #
s1 0 1.0
1 2.0
2 3.0
3 NaN
4 NaN
dtype: float64
df1 = DataFrame([1,2,3,np.nan,None]) # Series和DataFrame都会自动把None转换成NaN 然后 运算的时候会把NaN当成0
df1

2. 空值检测与空值处理
isnull()notnull()dropna(): 过滤丢失数据fillna(): 填充丢失数据
2.1 空值检测
isnull()notnull()
用randint创建一个5*5的DataFrame作为例子
df = DataFrame(data=np.random.randint(0,100,size=(5,5)),columns=list('abcde'))
df.loc[1,'a'] = np.nan
df.loc[3,'b'] = np.nan
df.loc[0,'e'] = np.nan

isnull配合any使用,可以查看每一行是否存在空值
可以控制axis改变方向,查看某一列是否存在空值
2.2 空值过滤
dropna()
可以选择过滤的是行还是列(默认为行)

df.dropna() # 默认 保留没有空值的行

也可以选择过滤的方式 how = 'all',代表全部为空则删除
2.3 空值填充¶
fillna()
# value=None 默认情况
df.fillna(value=50)
也可以选择从前面找值来填充还是从后面找值来填充

# method指的是 如何对空值进行填充
# 'bfill'从后面找值来填充 ffill从前面找值来填充
# df.fillna(method='bfill')
# df.fillna(method='ffill') # 默认是纵向(从相邻样本的 同一特征中找值)
# df.fillna(method='bfill',axis=0) # 竖向
df.fillna(method='bfill',axis=1) # 横向
还可以限定最多填充几个连续的NaN

df.fillna(method='bfill',limit=1,inplace=True) # 用来限制填充多少个

fillna()方法总结:
# value=None, method=None, axis=None, inplace=False, limit=None
# value直接指定 用什么值来填充
# method 指定填充方法
# axis 指定填充值的方向
# inplace 指的是是否对原df进行替换
# limit 限制填充的个数
df.fillna()
pandas中的空值处理的更多相关文章
- python数据分析pandas中的DataFrame数据清洗
pandas中的DataFrame中的空数据处理方法: 方法一:直接删除 1.查看行或列是否有空格(以下的df为DataFrame类型,axis=0,代表列,axis=1代表行,以下的返回值都是行或列 ...
- Python学习教程:Pandas中第二好用的函数
从网上看到一篇好的文章是关于如何学习python数据分析的迫不及待想要分享给大家,大家也可以点链接看原博客.希望对大家的学习有帮助. 本次的Python学习教程是关于Python数据分析实战基础相关内 ...
- pandas中na_values与keep_default_na
我们在使用pandas读取文件时,常会遇到某个字段为NaN. 一般情况下,这时因为文件中包含空值导致的,因为pandas默认会将 '-1.#IND', '1.#QNAN', '1.#IND', '-1 ...
- (数据科学学习手札131)pandas中的常用字符串处理方法总结
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常开展数据分析的过程中,我们经常需要对 ...
- pandas中常用的操作一
pandas中常用的功能: 1.显示所有的列的信息,999表示显示最大的列为999 pd.options.display.max_columns=999 2.读取excel时设置使用到列的名称,和列的 ...
- Pandas中DateFrame修改列名
Pandas中DateFrame修改列名 在做数据挖掘的时候,想改一个DataFrame的column名称,所以就查了一下,总结如下: 数据如下: >>>import pandas ...
- 在PreparedStatement中设置空值
在PreparedStatement中设置空值 分类: Work& Study java2009-09-10 09:56 922人阅读 评论(0) 收藏 举报 nulltypes数据库 ...
- pandas中的分组技术
目录 1 分组操作 1.1 按照列进行分组 1.2 按照字典进行分组 1.3 根据函数进行分组 1.4 按照list组合 1.5 按照索引级别进行分组 2 分组运算 2.1 agg 2 ...
- Java中的空值判断
Java中的空值判断 /** * 答案选项: * A YouHaidong * B 空 * C 编译错误 * D 以上都不对 */ package com.you.model; /** * @auth ...
随机推荐
- 20190412 T-SQL语言二
Use xsxk;WITH c_count(id,xb,rs)AS (SELECT 班级,性别,count(*)FROM XS GROUP BY 班级,性别 ) SELECT * FROM c_cou ...
- java框架之SpringBoot(12)-消息及整合RabbitMQ
前言 概述 大多数应用中,可通过消息服务中间件来提升系统异步通信.扩展解耦的能力. 消息服务中两个重要概念:消息代理(message broker)和目的地(destination).当消息发送者发送 ...
- js篇-解析url链接里面的参数名和参数值
项目背景是,链接为:https://paladin.pingan.com.cn/jf/?appId=PA00200000000_01_APP&id=123456#/fundRank 要求拿到: ...
- 3.1.1 Spring 简介
1. 概念 Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架. IoC : Inversion of Control AOP : Aspect Oriented Program ...
- Unicode编码学习
unicode基础知识 简单来说,** unicode 是字符集,utf-8,utf-16,utf-32是编码规则.** unicode 字符集: ttps://unicode-table.com/ ...
- tensorflow输出
在Session对象上调用run()函数,执行流图,即可得到输出, 可获取单个输出,也可获取多个输出 import tensorflow as tf import numpy as np consta ...
- 新装Windows Server 2008 r2无法连接有线网络
新装的Windows Server 2008 r2没有网卡驱动,所以没有网络适配器. 首先,我在相同的型号电脑上查到这个主板的网卡驱动安装的是Intel(R) Ethernet Coinnection ...
- How Many Triangles (极角排序 + 尺取法)
题意:二维平面与有很多个点,然后求构成锐角三角形的个数. 思路:对于每一个三角形我们知道存在至少2个锐角,只要有一个钝角就不行了,所以我们的想法就是枚举所有夹角的状态,然后得知情况,确定用总个数减去- ...
- vue用npm安装删除模块element-ui mint-ui
vue用npm安装删除模块element-ui mint-ui 在vue项目中先引入了element-ui,后来发现移动版的需要用mint-ui,所以需要先卸载了再安装.卸载element-ui:np ...
- nginx--service配置
nginx从今天开始进行相关学习了,包括:1.注册centos的service服务:2.相关的tomcat负载:3.https配置:4.session共享配置 1.注册centos的service服务 ...