cdatabase读取excel第一行数据_pandas读取excel数据并对重复数据进行标记或者删除

pandas读取excel数据并对重复数据进行标记或者删除​mp.weixin.qq.com
2e575fb0f43747db27a80c368fb5f098.png

pandas通常在读取excel数据之后,如果需要进行去重,有两种方式,一种是进行标记,另一种是在pandas中直接去重
如下图所示,excel数据:

cf7e5cfe9b30791b5bfbefc9761c1770.png


(1)使用drop_duplicates(subset=None, keep=‘first’, inplace=False)删除重复项
参数解释:
Parameters
----------
subset : column label or sequence of labels, optional
Only consider certain columns for identifying duplicates, by
default use all of the columns(指定列标记,默认当每一条行记录完全
相同时,才会认定为重复行)
keep : {‘first’, ‘last’, False}, default ‘first’
- first : Drop duplicates except for the first occurrence.
- last : Drop duplicates except for the last occurrence.
- False : Drop all duplicates.
(删除重复行时,保留first还是last还是全部删除)
inplace : boolean, default False
Whether to drop duplicates in place or to return a copy
(直接替换还是保留副本)

>>> import pandas as pd
>>> df = pd.read_excel(r'C:UsersliuchaoDesktopStudents.xlsx', 'Sheet1')
>>> dfID         Name  Test_1  Test_2  Test_3
0   0  Student_001      41      31      54
1   1  Student_002      86      22      59
2   2  Student_003      54      25      68
3   3  Student_004      82      36      92
4   4  Student_001      41      31      93
# 如上图所示,df中其实是没有重复的,因此在做删除时,是不会删除任一行的
>>> df.drop_duplicates()ID         Name  Test_1  Test_2  Test_3
0   0  Student_001      41      31      54
1   1  Student_002      86      22      59
2   2  Student_003      54      25      68
3   3  Student_004      82      36      92
4   4  Student_001      41      31      93
# 删除Name中的相同数据,并保留最后重复中的最后一行记录
>>> df1 = df.drop_duplicates(['Name'], keep='last')
>>> df1ID         Name  Test_1  Test_2  Test_3
1   1  Student_002      86      22      59
2   2  Student_003      54      25      68
3   3  Student_004      82      36      92
4   4  Student_001      41      31      93
# 只有当Name, Test_1中两列重复时,才删除重复行
>>> df2 = df.drop_duplicates(['Name', 'Test_1'], keep='first')
>>> df2ID         Name  Test_1  Test_2  Test_3
0   0  Student_001      41      31      54
1   1  Student_002      86      22      59
2   2  Student_003      54      25      68
3   3  Student_004      82      36      92
# 由于此时inreplace默认为false,因此df并不会发生变化
>>> dfID         Name  Test_1  Test_2  Test_3
0   0  Student_001      41      31      54
1   1  Student_002      86      22      59
2   2  Student_003      54      25      68
3   3  Student_004      82      36      92
4   4  Student_001      41      31      93

(2)使用df.duplicated(subset=None, keep=‘first’)对重复行进行标记

>>> df['res'] = df.duplicated(['Name'], keep='last')
>>> dfID         Name  Test_1  Test_2  Test_3    res
0   0  Student_001      41      31      54   True
1   1  Student_002      86      22      59  False
2   2  Student_003      54      25      68  False
3   3  Student_004      82      36      92  False
4   4  Student_001      41      31      93  False
# 这样便对原数据进行了标记,可以将结果输入到excel中,做进一步处理
>>> df.to_excel(r'C:UsersliuchaoDesktopStudents.xlsx', 'Sheet2', index=None)

7dd9263b04332e78b78f67d5e3a6271d.png


哈哈,以上就是对pandas如何处理重复数据的学习,如果您有兴趣,欢迎关注:python小工具。一起让办公变得更方便吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二维温度场matlab编程,二维温度场重建算法(价钱可议)

即病态方程的求解,具体问题如下:(1)物理模型矩形区域的物理模型,即辐射传热定律:可转化为:EUT其中:E表示n个壁面单元辐射接收装置各自所接收的辐射能组成的集合。U被称为敏感矩阵,其与第i个气体…

java 7.函数-递归_带有谓词的Java中的函数样式-第2部分

java 7.函数-递归在本文的第一部分中,我们介绍了谓词,这些谓词通过具有返回true或false的单一方法的简单接口,为Java等面向对象的语言带来了函数式编程的某些好处。 在第二部分和最后一部分中,我们将介绍一些更高级的概念&#xf…

apk改之理_一份礼物.apk-O泡果奶的逆向分析

事情起因是震惊全国大学生的1013事件!!!刚好看到社团群里在讨论这个,于是就发挥专业特长分析一下拿到apk ,第一步肯定先放到虚拟机里跑一下看下效果emmm这似曾相识的页面,这熟悉的音量,唯一变化的就是音乐变成了O泡果奶的魔性洗脑…

《java从入门到精通》pdf

下载地址: 网盘下载 内容简介 编辑本书从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Java语言进行程序开发应该掌握的各方面技术。全书共分28章,包括:初识Java,熟悉Eclipse开发工具…

接口测试php代码,简易 PHP API 测试

简易 PHP API 测试PHP代码/*Author : JamesDate : 2020/3/21Versions: Beta v2HEPL :HTTP POST :1.{ "select": "mock_data", "where": [{ "id": "1" },{ "username": "james" }], "limit": …

哪个线程执行CompletableFuture的任务和回调?

尽管CompletableFuture大约是两年前(!)于2014年3月在Java 8中引入的,但它仍然是一个相对较新的概念。但是,此类不是很广为人知是一件好事,因为它很容易被滥用,尤其是在线程和线程方面。一路涉及…

时区处理总结

我司业务分布在跨时区的多个国家,我在日常积累了较多的时区处理经验,在此分享一下 首先基本概念,时间分为2种 datetime,这是给人读的时间,分时区。如2000-1-1 12:00:00 gmttimestamp,这是unix时间戳&#x…

python彩色螺旋线_解决python彩色螺旋线绘制引发的问题

彩色螺旋线的绘制代码如下: import turtle import time turtle.pensize(2) turtle.bgcolor(black) colors [red, yellow, purple, blue] turtle.tracer(False) for x in range(400): turtle.forward(2*x) turtle.color(colors[x % 4]) turtle.left(91) turtle.trac…

matlab中的logspace,matlab中的logspace(a,b,n)究竟怎么理解,看下例题,谁能详细解给我看...

matlab中的logspace(a,b,n)究竟怎么理解,看下例题,谁能详细解给我看来源:互联网 宽屏版 评论2009-12-07 10:11:30分类: 教育/科学 >> 学习帮助问题描述:vec2logspace(0,10,6)的答案为什么是1.0e010 * 0.0000 0.0000 0.000…

ID3和C4.5分类决策树算法 - 数据挖掘算法(7)

(2017-05-18 银河统计)决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干&#xff0c…

mysql 聚簇索引和非聚簇索引_图文并茂,说说MySQL索引

点击上方 小伟后端笔记 ,选择 星标 公众号重磅资讯、干货,第一时间送达作者:小小木的博客来源:cnblogs.com/wyc1994666/p/10831039.html序开门见山,直接上图,下面的思维导图即是现在要讲的内容,…

mysql数据库日志截断,MySQL基础(十一):查询截取分析

下面是小凰凰的简介,看下吧!💗人生态度:珍惜时间,渴望学习,热爱音乐,把握命运,享受生活💗学习技能:网络 -> 云计算运维 -> python全栈( 当前正在学习中…

component是什么接口_阿里高级技术专家:整洁的应用架构“长”什么样?

很多同学不止一次和我反馈,我们的系统很混乱,主要表现在:应用的层次结构混乱:不知道应用应该如何分层、应该包含哪些组件、组件之间的关系是什么;缺少规范的指导和约束:新加一段业务逻辑不知道放在什么地方…

php把1拆分成三份,【php】位运算如何拆分

举例,比如说下面可以组合成71|2|4; // 7那么比如我给一个15,怎么拆分成:1、2、4、8,或者是任意其他数,怎么进行拆分回答不熟悉php。可以先确定这个数占多少位,比如64或者32等。然后再左移位,按位…

20155202 实验四 Android开发基础

20155202 实验四 Android开发基础 实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android、组件、布局管理器的使用; 3.掌握Android中事件处理机制。 实验要求 第24章:初识Android任务一:完成Hello World…

死信队列和延迟队列_在实践中使用延迟队列

死信队列和延迟队列通常,在某些情况下,当您有某种工作或作业队列时,有必要不立即处理每个工作项或作业,而是要延迟一些时间。 例如,如果用户单击一个按钮来触发要完成的某项工作,而一秒钟后,用户…

python的代码在哪写_python代码在哪里编写

编写python代码,可以在自带的ide中写,也可以使用第三方编辑器,下面介绍几款常见的python IDE 1. VimVim 可以说是 Python 最好的 IDE。Vim 是高级文本编辑器,旨在提供实际的 Unix 编辑器‘Vi’功能,支持更多更完善的特…

nio框架中的多个Selector结构

随着并发数量的提高,传统nio框架采用一个Selector来支撑大量连接事件的管理和触发已经遇到瓶颈,因此现在各种nio框架的新版本都采用多个Selector并存的结构,由多个Selector均衡地去管理大量连接。这里以Mina和Grizzly的实现为例。 在Mina 2…

js 编码 php解码,浅谈php和js中json的编码和解码

php中1)编码$jsonStr json_encode($array)2)解码$arr json_decode($jsonStr)echo json_encode("中文", JSON_UNESCAPED_UNICODE);添加参数:JSON_UNESCAPED_UNICODE即可。测试环境:PHP Version 5.5.36js中1. 编码var str obj.toJSONString()…

如果您在2015年编写过Java代码-这是您不容错过的趋势

去年我们有机会遇到的最有趣趋势的实用概述 在这篇文章中,我们将回顾构成我们2015年对话的5个主题和新发展。与其他许多年终总结保持较高水平的不同,我们将做一个更实际的操作不用流行语 。 好吧,没有太多*流行语。 与往常一样,对…