博客
关于我
chapter.数据清洗1.2
阅读量:517 次
发布时间:2019-03-07

本文共 2318 字,大约阅读时间需要 7 分钟。

1.3填充缺失值

当数据量不够或者其他部分信息很重要的时候,就不能删除数据了,这时需要对缺失值进行填充,通过fillna方法可以将缺失值替换为常数值。
例:

import pandas as pdimport numpy as npfrom pandas import Series,DataFramefrom IPython.display import displaydata=DataFrame(np.arange(12).reshape(3,4))display(data)#对数据进行处理,即创建一些为缺失值的数据data.loc[1,:]=np.nandata[2]=np.nandisplay(data)

在这里插入图片描述

使用fillna方法填充

import pandas as pdimport numpy as npfrom pandas import Series,DataFramefrom IPython.display import displaydata=DataFrame(np.arange(12).reshape(3,4))display(data)#对数据进行处理,即创建一些为缺失值的数据data.loc[1,:]=np.nandata[2]=np.nandisplay(data)data.fillna(0)#全部填充为0

在这里插入图片描述

当然在fillna中传入字典结构数据,可以针对不同列填充不同的值,fillna返回的是新对象,不会对原数据进行修改,可通过inplace就地进行修改。
例:

import pandas as pdimport numpy as npfrom pandas import Series,DataFramefrom IPython.display import displaydata=DataFrame(np.arange(12).reshape(3,4))display(data)#对数据进行处理,即创建一些为缺失值的数据data.loc[1,:]=np.nandata[2]=np.nandisplay(data)data.fillna({   1:6,3:0})

在这里插入图片描述

还可以通过平均值来作为填充数

import pandas as pdimport numpy as npfrom pandas import Series,DataFramefrom IPython.display import displaydata=DataFrame(np.arange(12).reshape(3,4))display(data)#对数据进行处理,即创建一些为缺失值的数据data.loc[1,:]=np.nandata[2]=np.nandisplay(data)data.fillna(method='ffill')

在这里插入图片描述

2.移除重复数据
在爬取的数据中往往会出现重复数据,对于重复数据保留一份即可,其余可以移除,在DataFrame数据中,通过duplicated方法判断各行是否有重复数据。

data=DataFrame({       '姓名':['小敏','晓明','小强','小红','晓明'],    '年龄':['女','男','男','女','男'],    '地址':['北京','南京','上海','广州','南京']})
import pandas as pdimport numpy as npfrom pandas import Series,DataFramefrom IPython.display import displaydata=DataFrame({       '姓名':['小敏','晓明','小强','小红','晓明'],    '年龄':['女','男','男','女','男'],    '地址':['北京','南京','上海','广州','南京']})display(data)data.duplicated()

在这里插入图片描述

通过drop_duplicates方法,可以删除多余的重复项

import pandas as pdimport numpy as npfrom pandas import Series,DataFramefrom IPython.display import displaydata=DataFrame({       '姓名':['小敏','晓明','小强','小红','晓明'],    '年龄':['女','男','男','女','男'],    '地址':['北京','南京','上海','广州','南京']})display(data)data.drop_duplicates()

在这里插入图片描述

很显然这种情况下当每行的每个字段都相同时才会判断出为重复,这时可以通过指定部分作为判断重复项的依据。

import pandas as pdimport numpy as npfrom pandas import Series,DataFramefrom IPython.display import displaydata=DataFrame({       '姓名':['小敏','晓明','小强','小红','晓明'],    '年龄':['女','男','男','女','男'],    '地址':['北京','南京','上海','广州','南京']})display(data)data.drop_duplicates('年龄')

在这里插入图片描述

从结果可以看出,保留的数据为第一次出现的组合。传入keep=‘last’可以保留最后一个。

转载地址:http://hrynz.baihongyu.com/

你可能感兴趣的文章
MySQL5.7.18主从复制搭建(一主一从)
查看>>
MySQL5.7.19-win64安装启动
查看>>
mysql5.7.19安装图解_mysql5.7.19 winx64解压缩版安装配置教程
查看>>
MySQL5.7.37windows解压版的安装使用
查看>>
mysql5.7免费下载地址
查看>>
mysql5.7命令总结
查看>>
mysql5.7安装
查看>>
mysql5.7性能调优my.ini
查看>>
MySQL5.7新增Performance Schema表
查看>>
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
查看>>
Webpack 之 basic chunk graph
查看>>
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>