Pandas 数据清洗常用篇
一.缺失值
sklearn中的preprocessing下有imputer,可进官方文档参考。这里主讲pandas。
拿到数据,一般先检查是否有缺失值,用isnul()或notnull().
再决定dropna(),还是fillna()。
1.1 检查是否有缺失值 isnull()、notnull()
import pandas as pd
import numpy as np
df = pd.DataFrame({"col_1":[1, 2, 3, 666, 1480],
"col_2":[125, 999, 110, np.nan, 300],
"col_3":[1389, np.nan, np.nan, np.nan, 0]})
df
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
col_1 | col_2 | col_3 | |
---|---|---|---|
0 | 1 | 125.0 | 1389.0 |
1 | 2 | 999.0 | NaN |
2 | 3 | 110.0 | NaN |
3 | 666 | NaN | NaN |
4 | 1480 | 300.0 | 0.0 |
df.isnull() #询问每一个值是不是为NaN.
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
col_1 | col_2 | col_3 | |
---|---|---|---|
0 | False | False | False |
1 | False | False | True |
2 | False | False | True |
3 | False | True | True |
4 | False | False | False |
df.notnull() #询问每一个值是不是不为NaN,跟上面的相反就是了
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
col_1 | col_2 | col_3 | |
---|---|---|---|
0 | True | True | True |
1 | True | True | False |
2 | True | True | False |
3 | True | False | False |
4 | True | True | True |
1.2 假设要删除缺失值dropna()
考虑如何删,删行?删列?还是缺失多少个才删?
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
- axis:决定删行删列,默认axis=0,删行;删列要修改axis=1.
- how:决定怎么删,至少有一个NaN就删,还是全是NaN才删。default "any",只要有NA,马上删掉该行或该列。"all",全是NA时才删掉这一行或一整列。
- thresh : 设置该行或列至少有多少个非NA值才能保留下来,有点拗口。输入整数,这个参数有必要才设置,没有就不用管。
- subset : array-like, optional
Labels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to include. - inplace : 是否直接取代原数据框,默认False,所以我们真要除去行列,会inplace=True,或者给它新赋值到一个变量中。
df.dropna()
.dataframe thead tr:only-child th {
text-align: right;
}
.dataframe thead th {
text-align: left;
}
.dataframe tbody tr th {
vertical-align: top;
}
col_1 | col_2 | col_3 | |
---|---|---|---|
0 | 1 | 125.0 | 1389.0 |
4 | 1480 | 300.0 | 0.0 |
ing~~~
Pandas 数据清洗常用篇的更多相关文章
- pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)
pandas学习(常用数学统计方法总结.读取或保存数据.缺省值和异常值处理) 目录 常用数学统计方法总结 读取或保存数据 缺省值和异常值处理 常用数学统计方法总结 count 计算非NA值的数量 de ...
- python重要的第三方库pandas模块常用函数解析之DataFrame
pandas模块常用函数解析之DataFrame 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器 ...
- pandas模块常用函数解析之Series(详解)
pandas模块常用函数解析之Series 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 打开浏览器输入网 ...
- pandas中常用的操作一
pandas中常用的功能: 1.显示所有的列的信息,999表示显示最大的列为999 pd.options.display.max_columns=999 2.读取excel时设置使用到列的名称,和列的 ...
- pandas数据清洗策略1
Pandas常用的数据清洗5大策略如下: 1.删除 DataFrame 中的不必要 columns 2.改变 DataFrame 的 index 3.使用 .str() 方法来清洗 columns 4 ...
- 2.pandas数据清洗
pandas是用于数据清洗的库,安装配置pandas需要配置许多依赖的库,而且安装十分麻烦. 解决方法:可以用Anaconda为开发环境,Anaconda内置了许多有关数据清洗和算法的库. 1.安装p ...
- pandas的常用函数
1.DataFrame的常用函数: (1)np.abs(frame) 绝对值, (2)apply function, lambda f= lambda x: x.max()-x.min(),frame ...
- Pandas库常用函数和操作
1. DataFrame 处理缺失值 dropna() df2.dropna(axis=0, how='any', subset=[u'ToC'], inplace=True) 把在ToC列有缺失值 ...
- LaTeX常用篇(一)---公式输入
目录 1. 序言 2. 命令介绍 3. 公式输入 3.1 无编号公式 3.2 有编号公式 更新时间:2019.10.02 1. 序言 当我们首次在文档中输入公式的时候,我们首先想到的是word,毕 ...
随机推荐
- 如何检测或判断一个文件或字节流(无BOM)是什么编码类型
前言: 昨天,在文章:终于等到你:CYQ.Data V5系列 (ORM数据层,支持.NET Core)最新版本开源了 中, 不小心看到一条留言: 然后就去该地址看了一下,这一看,顺带折腾了一天. 今天 ...
- mpvue小程序开发之 wx.getUserInfo获取用户信息授权
一.背景 在使用美团的mpvue2.0框架搭建起小程序项目后,做获取用户信息时遇到一些问题:微信小程序更新api后,获取用户信息只能通过button上的绑定方法 来获取用户信息,vue上方法绑定不能直 ...
- python实现列表的排序
群里有同行遇到这样一个面试题:有一个整数构成的列表,需要给这个列表进行从小到大存入到另一个列表中. 本身排序可以用python的内置函数sort和sorted,但题目的要求是手动实现. 看起来很简单, ...
- Java微服务之Spring Boot on Docker
本文学习前提:Java, Spring Boot, Docker, Spring Cloud 一.准备工作 1.1 安装Docker环境 这一部分请参考我的另一篇文章<ASP.NET Core ...
- JavaScript夯实基础系列(三):this
在JavaScript中,函数的每次调用都会拥有一个执行上下文,通过this关键字指向该上下文.函数中的代码在函数定义时不会执行,只有在函数被调用时才执行.函数调用的方式有四种:作为函数调用.作为 ...
- 滤波器——BoxBlur均值滤波及其快速实现
个人博客地址:滤波器--BoxBlur均值滤波及其快速实现 动机:卷积核.滤波器.卷积.相关 在数字图像处理的语境里,图像一般是二维或三维的矩阵,卷积核(kernel)和滤波器(filter)通常指代 ...
- asp.netcore 深入了解配置文件加载过程
前言 配置文件中程序运行中,担当着不可或缺的角色:通常情况下,使用 visual studio 进行创建项目过程中,项目配置文件会自动生成在项目根目录下,如 appsettings.json, ...
- 详解TypScript数据类型转换
最近在用TypeScript(后面简称TS),发现TS虽然语法和C#差不多但是在很多地方还是不够高级(和C#相比),这里主要聚焦在数据类型强转上面,直接看下面案例吧 string转number 案例如 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——6.底盘里程计标
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- 如何發佈一個完整Node.js Module
本文會透過以下幾個段落,讓各位一步一步學習如何寫一個自已的Node.js Module並且發佈到npm package上 Node.js Module 結構 我們先建立一個 NodeModuleDem ...