目录

所有列是否完全重复

指定某一列是否重复

根据多列判断是否重复,防止误删数据

其他数据预处理方法


通过八爪鱼或者火车头等采集器从全网抓取的数据中,总会存在各种各样的重复数据,为保证数据在使用过程中的准确性,总要先进行一番清洗。

所有列是否完全重复

在Pandas中,.duplicated()表示找出重复的行,默认是判断全部列,返回布尔类型的结果。对于完全没有重复的行,返回 False,对于有重复的行,第一次出现的那一行返回 False,其余的返回 True。

与.duplicated()对应的,.drop_duplicates()表示去重,即删除布尔类型为 True的所有行,默认是判断全部列。

import pandas as pd
import numpy as np
from pandas import DataFrame,Series#读取文件
datafile = u'E:\\pythondata\\tt.xlsx'#文件所在位置,u为防止路径中有中文名称,此处没有,可以省略
data = pd.read_excel(datafile)#datafile是excel文件,所以用read_excel,如果是csv文件则用read_csv
examDf = DataFrame(data)
examDf#输出源数据,直观的查看哪些行是重复的

运行结果:

name height birthday constellation Blood
0 Jay 175 1979 摩羯座 O
1 Jay 175 1979 摩羯座 O
2 Jolin 156 1980 处女座 A
3 Jolin 156 1980 NaN A
4 Hannah 165 1993 狮子座 B
5 JJ 173 1981 白羊座 O
6 Eason 173 1974 狮子座 O

很明显,第 0 行和第 1 行是完全重复的,开始去重,接着上面的代码,

#去重
print(examDf.duplicated())#判断是否有重复行,重复的显示为TRUE,
examDf.drop_duplicates()#去掉重复行

指定某一列是否重复

上述的数据中我们可以发现,第 2 行和第 3 行其实都是 Jolin 的信息,那么也是需要去重的。.duplicated()默认是判断全部列,那么加一点东西,就可以判断指定某一列了。

print(examDf.duplicated('name'))#判断name列是否有重复行,重复的显示为TRUE,
examDf.drop_duplicates('name')#去掉重复行

运行结果:

                                    

在实际应用中,需要指定的这一列往往是合同号,项目编号这一类的

根据多列判断是否重复,防止误删数据

仅仅根据name列判断是否重复,难免会把重名的另一个人的信息误删,比如娱乐圈的杨洋(小鲜肉男)和杨洋(快女),仅根据name判断是否重复的话,肯定会将其中一人的信息判断为重复数据,那么就增加几个判断条件,比如根据姓名,性别,生日三个条件来判断的话,误删的几率就会大大的减少。

import pandas as pd
import numpy as np
from pandas import DataFrame,Series#读取文件
datafile = u'E:\\pythondata\\tt.xlsx'#文件所在位置,u为防止路径中有中文名称,此处没有,可以省略
data = pd.read_excel(datafile)#datafile是excel文件,所以用read_excel,如果是csv文件则用read_csv
examDf = DataFrame(data)
print(examDf.duplicated(['name','sex','birthday']))#判断name,sex,birthday列是否有重复行,重复的显示为TRUE,
examDf.drop_duplicates(['name','sex','birthday'])#去掉重复行

运行结果:

                              

望指正!

其他数据预处理方法

拉格朗日插值法补充缺失值

连续数据离散化(等宽、等频、聚类离散)

数据预处理 - 归一化与标准化

重复值处理 - 清洗 DataFrame 中的各种重复类型 - Python代码相关推荐

  1. elasticsearch 根据条件去除重复值_Excel工作表中的条件格式,不只是查找重复值,还有7种典型用法...

    Excel工作表中的[条件格式],对于大部分亲来说并不陌生,用的最多的应该是标识"重复值"或"唯一值",其实还有数据可视化等多种功能-- 一.Excel条件格式 ...

  2. python concat去除重复值语句_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

    摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...

  3. java找重复字符串_在java中怎样查找重复字符串

    在一段java编程代码中,字符串是不可缺少的一个要素,属于java中的基础知识,字符串不仅在java面试题中会出现,在编写代码时更要掌握怎样使用字符串.在前面我们也学习过关于字符串截取的知识,你应该有 ...

  4. python查找数列中重复数字_在数组中找出重复的数字(异或法)

    购买本课程后,可以加51CTO学院李宁老师官方交流群:550369460注意,该群只允许购买李宁老师课程的学员进行技术交流,加群时需要提供在51CTO购买李宁老师课程的订单编号(任何一个课程的订单编号 ...

  5. anki卡片重复_如何在Anki中使用间隔重复来学习更快的编码

    anki卡片重复 by Steven Gilbert 史蒂文·吉尔伯特 如何在Anki中使用间隔重复来学习更快的编码 (How to use spaced repetition with Anki t ...

  6. 深度学习中的正则化技术(附Python代码)

    作者:SHUBHAM JAIN 翻译:和中华 校对:丁楠雅 本文约3500字,建议阅读20分钟. 本文简单介绍了什么是正则化以及在深度学习任务中可以采用哪些正则化技术,并以keras代码具体讲解了一个 ...

  7. mysql 查询不重复的值_在 MySQL 中查询不重复记录值的方法

    使用 WordPress 的过程中,我一直很好奇 WordPress 的一个功能,大家都知道在 WordPress 的编写文章的时候,可以自定义栏目,而这个自定义栏目的数据保存到 wp_postmet ...

  8. mysql大量重复值建立索引_对于有大量重复数据的表添加唯一索引

    遇到如题的这么一个场景:需要在MySQL的一张innodb引擎的表(tableA)上添加一个唯一索引(idx_col1_u).但是表中已经有大量重复数据,对于每个key(col1),有的重复2行,有的 ...

  9. python加减法计算题 代码_关于《剑指offer》中不用加减乘除做加法的Python代码的问题...

    题目如下: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 题目不难,可以采用位操作来实现,利用异或运算来计算不带进位的加法结果,利用与运算计算进位的标志,然后将这两个 ...

最新文章

  1. 【Linux】Linux-路径切换-相对路径和绝对路径快捷键记录linux 知识点记录
  2. three.js 一个页面可以存在多个render吗_你确定把Spring MVC的视图机制吃透了吗?...
  3. 自定义注解事务课程回顾
  4. 从单机应用到微服务,用户认证走几步?
  5. python安全攻防---scapy使用
  6. 蓝桥杯第八届省赛JAVA真题----拉马车
  7. Android编程之SparseArrayE详解 Android编程之SparseArrayE详解
  8. GL和DX中关于纹理操作(包括多重纹理)与混合的问题
  9. [HZOI 2016]tree—增强版
  10. 比较好的取色工具汇总
  11. 自动驾驶仿真:如何通过TCP方式进行VTD驾驶员仿真
  12. 总结的比较好的OpenGL教程
  13. linux检测主机网络配置和状况的命令是,Linux常用网络状态测试命令
  14. 深入理解java8,深入理解Java8新特性与源码剖析
  15. 几何公差(GDT)的特征项目及符号
  16. 城市名字 按a-z排序
  17. Java绝对好文,转载的!(转载)
  18. sdffdsfsdfdfssfsfsfsdfsdffds/sdfsDSFsd
  19. Redhat 7 安装 iftop软件
  20. 【随笔】IT圈的头衔泡沫

热门文章

  1. OpenGL学习笔记-坐标系统
  2. 从你的全世界路过-论演员的自我修养
  3. error_reporting
  4. C#快速导入海量XML数据至SQL Server数据库
  5. OA 办公系统 模块设计
  6. C++实现链表逆序打印、链表反转
  7. Ubuntu 17.10安装Qt 5.10环境与Qt Creator 4.5开发工具(转自linux公社)
  8. android系统开发(六)-HAL层开发基础
  9. 网络教育计算机 判断,北京师范大学网络教育计算机作业1、4、8
  10. mongodb数据库导出备份