本章概要

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数据规整化的更多相关文章

  1. 《python for data analysis》第七章,数据规整化

    <利用Python进行数据分析>第七章的代码. # -*- coding:utf-8 -*-# <python for data analysis>第七章, 数据规整化 imp ...

  2. Python之数据规整化:清理、转换、合并、重塑

    Python之数据规整化:清理.转换.合并.重塑 1. 合并数据集 pandas.merge可根据一个或者多个不同DataFrame中的行连接起来. pandas.concat可以沿着一条轴将多个对象 ...

  3. MVC5+EF6 简易版CMS(非接口) 第三章:数据存储和业务处理

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  4. 利用python进行数据分析之数据规整化

    数据分析和建模大部分时间都用在数据准备上,数据的准备过程包括:加载,清理,转换与重塑. 合并数据集 pandas对象中的数据可以通过一些内置方法来进行合并: pandas.merge可根据一个或多个键 ...

  5. 利用Python进行数据分析——数据规整化:清理、转换、合并、重塑(七)(1)

    数据分析和建模方面的大量编程工作都是用在数据准备上的:载入.清理.转换以及重塑.有时候,存放在文件或数据库中的数据并不能满足你的数据处理应用的要求.很多人都选择使用通用编程语言(如Python.Per ...

  6. 《利用python进行数据分析》读书笔记--第七章 数据规整化:清理、转换、合并、重塑(三)

    http://www.cnblogs.com/batteryhp/p/5046433.html 5.示例:usda食品数据库 下面是一个具体的例子,书中最重要的就是例子. #-*- encoding: ...

  7. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...

  8. 0003-20180422-自动化第三章-python基础学习笔记

    3章 内容回顾: 1. 计算机组成 2. 程序编译器 3. 变量 4. 条件 5. 循环 6. py2与py3区别 - 默认编码, - 除法, - input ,raw_input 7. 位,字节关系 ...

  9. 第三章 Python容器:列表、元组、字典与集合

      数据结构的分类依据?基本的"数组"在python中是列表, 数据结构的作用?容器,盛放数据,是由原子组成的分子.可以将一群数据进行整合.拆分.重排. 3.2 列表 列表是啥?顺 ...

随机推荐

  1. k8s集群升级

    集群升级 由于课程中的集群版本是 v1.10.0,这个版本相对有点旧了,最新版本都已经 v1.14.x 了,为了尽量保证课程内容的更新度,所以我们需要将集群版本更新.我们的集群是使用的 kubeadm ...

  2. 怎样在Chrome浏览器上安装 Vue Devtools 扩展程序

    第一步: 前往 GitHub 下载 Vue Devtools 项目文件 https://github.com/vuejs/vue-devtools 注意: 1. 将分支切换为 master 2. 下载 ...

  3. 第二讲,NT头文件格式,以及文件头格式

    今天详解NT 头格式,以及文件头格式,以及作用, 关于DOS头文件格式,以及DOSStub昨天的博客已经写过了.主要是分散讲解.便于理解. 一丶最小PE的生成,以及标准PE的生成 ps: (如果直接学 ...

  4. WP8的新功能-通过一个程序来启动另一个程序

    Wp8对原来的WP7做了大量的优化...其中一个就包括Protocol Association,也就是通过uri来打开另外一个程序,这也就是说,我们可以做一个程序来启动另外一个程序了,如微信,QQ之类 ...

  5. Windows编程 鼠标

    客户区鼠标消息 由上一回我们得知Windows只把键盘消息发送给拥有输入焦点的窗口,而鼠标消息与此不同:只要鼠标跨越窗口或者在某窗口下按下鼠标键,那么窗口过程就会收到鼠标消息,不管该窗口是否活动或者是 ...

  6. sonarqube执行命令遇上的小问题

    在安装好sonarqube,本地或是服务器上都是可疑正常运行的情况下. 这一次我重新上传,修改配置SonarQube.Analysis.xml,sonar.host.url的值已经改为服务器上的,执行 ...

  7. DPDK latencystats库使用方案

    初始化 注意务必调用 rte_metrics_init /* init latency stats */ /* @TODO should we remove this in product env? ...

  8. Spark RDD学习笔记

    一.学习Spark RDD RDD是Spark中的核心数据模型,一个RDD代表着一个被分区(partition)的只读数据集. RDD的生成只有两种途径: 一种是来自于内存集合或外部存储系统: 另一种 ...

  9. Webpack4 splitChunks配置,代码分离逻辑

    博客不知道啥时候写的了,一直在草稿箱没写完,突然感觉今年过去大半了,又没怎么写博客.写写完,有始有终 1.代码分离升级 原来项目代码分离是通过下面的配置,基于bundle-loader插件,通过rou ...

  10. 转载一篇让你全面了解什么是.NET。

    转载于:https://www.52abp.com/BlogDetails/10009 阅读文本大概需要 8 分钟. 持续进化的 .NET 这张图即是一个学习的路线图同样他也是 .NET 平台的进化图 ...