第三章 python数据规整化
本章概要
1、去重
2、缺失值处理
3、清洗字符型数据的空格
4、字段抽取
去重
把数据结构中,行相同的数据只保留一行
函数语法:
- drop_duplicates()
#导入pandas包中的read_csv函数
from pandas import read_csv
df=read_csv('路径')
#找出行重复的位置
dIndex=df.duplicated()
#也可根据某些列,找出重复的位置
dIndex=df.duplicated('age')
dIndex=df.duplicated(['age','name'])
#根据返回值,把重复数据提取出来
df[dIndex]
#默认根据所有的列,进行删除,注意这里是duplicates
newdf=df.drop.duplicates()
#也可以指定莫一列,进行重复值删除
newdf=df.drop.duplicates('age')
缺失值处理
缺失数据的产生
数据暂时无法获取
- 比如未成年儿童的收入等
有些数据被遗漏或错误处理了
缺失数据的处理方式
缺失数据在实际工作中,是不可避免的,本部分还是很重要的
数据补齐
- 用一定的值去填充空值,使数据完备化,如平均值填充等等
删除对应缺失行
不处理
如何删除缺失数据的所在行
在python中,使用dropna函数进行缺失数据的清洗
dropna函数作用:去除数据结构中值为空的数据
dropna函数语法:dropna()
# 首先导入数据文件,输出df变量
from pandas import read_csv
df=read_csv('路径')
在pandas的数据框中,缺失值用NaN来标注
# 把之前数据为空的,换成a,b,可以把a、b指定为NaN值,作用是可以把不不要的数据替换成缺失值,然后处理,使用的是read的na_values函数
df=read_csv('路径',na_values=['a','b'])
# 找出NaN所在的行,通过isnull方法获取数据框中某个位置的值是否为NaN值
isNA=df.isnull()
- 如何数据框对应的位置是NaN值,那么isnull方法对应的就是布尔值True,根据这个特征,就可以使用数据框的行获取方法,获取出NaN值所在的行
#获取空值所在的行
#首先获取所有的列,只要获取到NaN了,就认为这行有NaN值了
#使用any方法,就可以实现这种选择效果
df[isNA.any(axis=1)]
#如何要特定某列的NaN值,定位后在用any的方法就可以了
df[isNA[['gender']].any(axis=1)]
- 特别注意定位gender的字符串有两个中括号,不能是一个
#直接删除空值
newdf=df.dropna()
清洗字符型数据的空格
strip函数作用:清除字符型数据左右的空格
strip函数语法:strip()
#打开数据文件
from pandas import read_csv
df=read_csv('路径')
#清除字符串左边的空格
newname=df['name'].str.lstrip()
#清除字符串右边的空格
newname=df['name'].str.rstrip()
#清除字符串左、右边的空格
newname=df['name'].str.strip()
#把清洗后的数据放回原来的列
df['name']=newname
字段抽取
字段抽取,是根据已知列数据的开始和结束位置,抽取出新的列
字段截取函数:slice(start开始位置,stop结束位置)
与数据结构的访问方式一样,开始位置是从0开始的,开始位置是大于等于,结束位置是小于,不能取等于
slice函数默认只能处理字符型数据,如要处理数字型数据,必须进行转化
第三章 python数据规整化的更多相关文章
- 《python for data analysis》第七章,数据规整化
<利用Python进行数据分析>第七章的代码. # -*- coding:utf-8 -*-# <python for data analysis>第七章, 数据规整化 imp ...
- Python之数据规整化:清理、转换、合并、重塑
Python之数据规整化:清理.转换.合并.重塑 1. 合并数据集 pandas.merge可根据一个或者多个不同DataFrame中的行连接起来. pandas.concat可以沿着一条轴将多个对象 ...
- MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理
目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...
- 利用python进行数据分析之数据规整化
数据分析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载,清理,转换与重塑. 合并数据集 pandas对象中的数据可以通过一些内置方法来进行合并: pandas.merge可根据一个或多个键 ...
- 利用Python进行数据分析——数据规整化:清理、转换、合并、重塑(七)(1)
数据分析和建模方面的大量编程工作都是用在数据准备上的:载入.清理.转换以及重塑.有时候,存放在文件或数据库中的数据并不能满足你的数据处理应用的要求.很多人都选择使用通用编程语言(如Python.Per ...
- 《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)
http://www.cnblogs.com/batteryhp/p/5046433.html 5.示例:usda食品数据库 下面是一个具体的例子,书中最重要的就是例子. #-*- encoding: ...
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...
- 0003-20180422-自动化第三章-python基础学习笔记
3章 内容回顾: 1. 计算机组成 2. 程序编译器 3. 变量 4. 条件 5. 循环 6. py2与py3区别 - 默认编码, - 除法, - input ,raw_input 7. 位,字节关系 ...
- 第三章 Python容器:列表、元组、字典与集合
数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...
随机推荐
- S02_CH15_ AXI_OLED 实验
S02_CH15_ AXI_OLED 实验 在上一个例子中,主要是以软件功能为主,采用了软件模拟SPI时序进行控制OLED.这样做的好处是灵活,但是牺牲了效率.本章采用的方式是让SPI驱动由Veril ...
- 【数据结构】P1054 等价表达式
[题目链接] https://www.luogu.org/problem/P1054 题目描述 明明进了中学之后,学到了代数表达式.有一天,他碰到一个很麻烦的选择题.这个题目的题干中首先给出了一个代数 ...
- spring-boot-plus集成Shiro+JWT权限管理
SpringBoot+Shiro+JWT权限管理 Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 使用Shiro的易于理解的API,您可以 ...
- USB相关资料汇总
[1]USB规范,一切的一切,基本的基本,天书级别USB_11_spec(中文).pdf USB1.1规范(中文版) usb_20.pdf USB2.0规 ...
- oracle中查询表中的触发器,关闭启用操作
1.查询指定表中有哪些触发器 select * from all_triggers WHERE table_name='表名' 2.禁用指定表中所有的触发器 alter table table_nam ...
- 微信小程序wxs如何使用
新建一个.wxs文件 <!-- 引入.wxs文件 src为相对路径,module指定当前模块的名称 --> <wxs module="filter" src=&q ...
- 使用LEANGOO泳道
转自:https://www.leangoo.com/leangoo_guide/leangoo_yongdao.html 列表使用纵向的纬度管理卡片,通常代表卡片的工作的不同阶段,或者任务的状态.泳 ...
- Spring中事务的传播行为,7种事务的传播行为,数据库事务的隔离级别
Propagation.REQUIRED 代表当前方法支持当前的事务,且与调用者处于同一事务上下文中,回滚统一回滚(如果当前方法是被其他方法调用的时候,且调用者本身即有事务),如果没有事务,则自己新建 ...
- js页面内容只读,不可复制
// document.oncontextmenu=new Function("event.returnValue=false"); // document.onselectsta ...
- 第三章、前端之JavaScript
目录 第三章.前端之JavaScript 一.javaScript的引入方式 二.JavaScript语言的规范 三.语言基础 变量声明 四.数据类型 五.流程控制 六.函数 函数的argument ...